:root{
  --ink:#0a0e14; --muted:#4a5560; --soft:#8892a0; --line:#e6e9ee; --paper:#ffffff;
  --accent:#03779f; --accent-2:#1ba8d4; --accent-3:#5fd0ef; --deep:#025470;
  --ok:#0f9d6b; --warn:#d98a0b; --alert:#e0564b;
  --ease:cubic-bezier(.2,.8,.2,1);
  --shadow:0 40px 90px -30px rgba(3,64,90,.34);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Inter',sans-serif; color:var(--ink); background:#fff; -webkit-font-smoothing:antialiased; line-height:1.6; font-size:17px;}
a{text-decoration:none; color:inherit;}
img{max-width:100%; display:block;}
.wrap{width:min(1160px, calc(100% - 48px)); margin:0 auto;}

.btn{cursor:pointer; font-weight:700; border:none; display:inline-flex; align-items:center; justify-content:center; gap:8px; font-size:1rem; padding:14px 24px; border-radius:12px; white-space:nowrap; transition:.2s var(--ease);}
.btn.pri{background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff;}
.btn.pri:hover{box-shadow:0 14px 30px -12px rgba(3,119,159,.6); transform:translateY(-2px);}
.btn.ghost{background:#fff; color:var(--ink); border:1.5px solid var(--line);}
.btn.ghost:hover{border-color:var(--accent-3); color:var(--accent);}
.btn.dark{background:var(--ink); color:#fff;}
.btn.full{width:100%;}
.chk{color:var(--ok); font-weight:800; flex-shrink:0;}

section{padding:70px 0;}
.sec-head{text-align:center; max-width:700px; margin:0 auto 46px;}
.eyebrow{display:inline-block; color:var(--accent); font-family:ui-monospace,monospace; font-size:.8rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:12px;}
h2.sh{font-size:clamp(1.8rem,3.8vw,2.6rem); font-weight:800; letter-spacing:-.03em; line-height:1.05;}
.sub{color:var(--muted); margin-top:14px; font-size:1.08rem;}
.bg-soft{background:#f6fafb;}

/* ===== FontAwesome duotone — tono de marca ===== */
.fad, .fa-duotone{--fa-primary-color:var(--accent); --fa-secondary-color:var(--accent-3); --fa-secondary-opacity:.38;}
/* (reglas .scard .ic / .icard .ic retiradas 10-07-2026: esas tarjetas ya no usan chip .ic) */

/* ============================================================
   HEADER — H2 (pill flotante, sticky) + hamburguesa móvil
   ============================================================ */
.hdr{position:sticky; top:0; z-index:100; padding:16px 0; transition:.25s;}
.hdr .hwrap{display:flex; justify-content:center;}
.pill{display:flex; align-items:center; gap:22px; background:rgba(255,255,255,.92); backdrop-filter:blur(16px); border:1px solid var(--line); border-radius:50px; padding:8px 8px 8px 22px; box-shadow:0 12px 34px -18px rgba(3,64,90,.4); max-width:100%;}
.pill img.logo{height:60px; display:block;}
.pill .logolink{display:flex; align-items:center; cursor:pointer;}
.pill .pay{background:#fff; border:1.5px solid var(--accent); color:var(--accent); padding:9px 16px; border-radius:50px; font-size:.86rem; font-weight:700; display:inline-flex; align-items:center; gap:7px; transition:.2s;}
.pill .pay:hover{background:var(--accent); color:#fff;}
.pill .pay .fa-duotone{--fa-primary-color:currentColor; --fa-secondary-color:currentColor; --fa-secondary-opacity:.5;}
.mpanel .mpay{color:var(--accent);}
.pill nav{display:flex; gap:22px; font-size:.92rem; font-weight:600; color:var(--muted);}
.pill nav a:hover{color:var(--accent);}
.pill nav a.on{color:var(--ink); font-weight:700;}
.pill nav .nav-soon{color:var(--muted); cursor:default; display:inline-flex; align-items:center; gap:5px; opacity:.72;}
.soon-badge{font-size:.5rem; font-weight:800; letter-spacing:.01em; text-transform:uppercase; background:linear-gradient(135deg,var(--accent-2),var(--accent)); color:#fff; padding:1px 5px; border-radius:999px; line-height:1.5; white-space:nowrap;}
.mpanel .nav-soon{display:flex; align-items:center; gap:8px; padding:13px 4px; font-size:1.05rem; font-weight:600; color:var(--muted); border-bottom:1px solid var(--line); opacity:.78;}
.pill .cta{background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; padding:9px 18px; border-radius:50px; font-size:.9rem; font-weight:700;}
.pill .portal{background:#fff; border:1.5px solid var(--line); color:var(--ink); padding:9px 16px; border-radius:50px; font-size:.86rem; font-weight:700; display:inline-flex; align-items:center; gap:7px; transition:.2s;}
.pill .portal:hover{border-color:var(--accent-3); color:var(--accent);}
.pill .portal .fa-duotone{--fa-primary-color:var(--accent); --fa-secondary-color:var(--accent-3);}
.burger{display:none; width:42px; height:42px; border:1px solid var(--line); border-radius:12px; background:#fff; cursor:pointer; align-items:center; justify-content:center; flex-direction:column; gap:4px; flex-shrink:0;}
.burger span{width:18px; height:2px; background:var(--ink); border-radius:2px; transition:.25s;}
.mpanel{display:none; position:fixed; inset:74px 16px auto 16px; z-index:99; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 30px 70px -24px rgba(3,64,90,.5); padding:14px 18px 18px;}
.mpanel.open{display:block;}
.mpanel a{display:block; padding:13px 4px; font-size:1.05rem; font-weight:600; border-bottom:1px solid var(--line);}
.mpanel .mcta{margin-top:14px; background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; text-align:center; padding:14px; border-radius:12px; font-weight:700; border-bottom:none;}

/* ============================================================
   HERO — HE1 (split) con panel 3D "sistema real corriendo"
   ============================================================ */
.hero{padding:56px 0 76px;}
.hero .grid{display:grid; grid-template-columns:1fr 1.05fr; gap:48px; align-items:center;}
.pills{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px;}
.pill-t{font-family:ui-monospace,monospace; font-size:.72rem; font-weight:500; color:var(--muted); border:1px solid var(--line); background:#fafcfd; padding:5px 11px; border-radius:7px; display:inline-flex; gap:6px; align-items:center;}
.pill-t .d{width:6px; height:6px; border-radius:50%; background:var(--ok);}
h1.hh{font-size:clamp(2.2rem,5vw,3.6rem); font-weight:900; letter-spacing:-.045em; line-height:.98; text-wrap:balance;}
.grad{background:linear-gradient(135deg,var(--accent) 10%,var(--accent-2) 55%,var(--accent-3) 95%); -webkit-background-clip:text; background-clip:text; color:transparent;}
.lead{color:var(--muted); font-size:1.1rem; margin-top:18px; max-width:460px;}
.actions{display:flex; gap:12px; margin-top:28px; flex-wrap:wrap;}
.trust{display:flex; gap:20px; margin-top:22px; flex-wrap:wrap;}
.trust .ti{font-size:.82rem; color:var(--muted); display:flex; align-items:center; gap:6px; font-weight:600;}

/* --- Panel 3D dashboard --- */
.stage{perspective:1500px;}
.panel3d{position:relative; border-radius:20px; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow); overflow:hidden; transform:rotateY(-9deg) rotateX(5deg); transition:transform .6s var(--ease);}
.stage:hover .panel3d{transform:rotateY(-3deg) rotateX(2deg);}
.panel3d::before{content:""; position:absolute; inset:0; border-radius:20px; padding:1px; background:linear-gradient(135deg,rgba(3,119,159,.55),transparent 35%,rgba(95,208,239,.45) 75%,transparent); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; z-index:5;}
.p3top{display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-bottom:1px solid var(--line); background:#fafcfd;}
.p3dots{display:flex; gap:5px;} .p3dots i{width:8px; height:8px; border-radius:50%; background:#e2e6ea;}
.p3cmd{color:var(--soft); background:#fff; border:1px solid var(--line); padding:4px 10px; border-radius:999px; font-size:.66rem; font-family:ui-monospace,monospace;}
.p3body{padding:16px;}
.p3prop{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
.p3prop .nm{font-weight:800; font-size:.98rem;} .p3prop .ad{color:var(--soft); font-size:.76rem; margin-top:1px;}
.p3tag{font-size:.66rem; font-weight:800; color:var(--ok); background:#e4f7ef; padding:5px 10px; border-radius:999px;}

.p3sec-t{font-size:.64rem; font-weight:800; text-transform:uppercase; letter-spacing:.8px; color:var(--soft); margin:0 0 9px;}
.svc-grid{display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-bottom:14px;}
.svc{display:flex; align-items:center; justify-content:space-between; border:1px solid var(--line); border-radius:9px; padding:8px 10px; background:#fff;}
.svc .l{font-size:.76rem; font-weight:600; display:flex; align-items:center; gap:7px;}
.svc .ico{width:9px; height:9px; border-radius:3px; background:var(--accent-3);}
.svc .st{font-size:.66rem; font-weight:800; display:flex; align-items:center; gap:5px;}
.svc .st.ok{color:var(--ok);} .svc .st.pend{color:var(--warn);}
.svc .dot{width:6px; height:6px; border-radius:50%;}
.svc .st.ok .dot{background:var(--ok);} .svc .st.pend .dot{background:var(--warn); animation:blink 1.6s infinite;}
@keyframes blink{50%{opacity:.3;}}

.mini2{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:14px;}
.mcell{border:1px solid var(--line); border-radius:10px; padding:10px 12px; position:relative;}
.mcell .k{font-size:.6rem; color:var(--soft); font-weight:700; text-transform:uppercase; letter-spacing:.5px;}
.mcell .v{font-size:.92rem; font-weight:800; margin-top:3px; display:flex; align-items:center; gap:6px;}
.mcell .v .dot{width:7px; height:7px; border-radius:50%;}
.mcell .v.ok{color:var(--ok);} .mcell .v.ok .dot{background:var(--ok);}
.mcell .v.alert{color:var(--alert);} .mcell .v.alert .dot{background:var(--alert); animation:blink 1.6s infinite;}
.mcell .badge-n{position:absolute; top:9px; right:9px; background:var(--accent); color:#fff; font-size:.6rem; font-weight:800; padding:2px 7px; border-radius:999px;}

.occ-row{display:flex; justify-content:space-between; font-size:.72rem; color:var(--muted); font-weight:600;}
.meter{height:8px; border-radius:999px; background:#eef1f3; overflow:hidden; margin-top:7px;}
.meter>div{height:100%; border-radius:999px; background:linear-gradient(90deg,var(--accent),var(--accent-3)); animation:meter 4s var(--ease) infinite alternate;}
@keyframes meter{from{width:60%;}to{width:94%;}}

/* foto de la propiedad dentro del panel */
.p3photo{position:relative; height:132px; overflow:hidden;}
.p3photo img{width:100%; height:100%; object-fit:cover;}
.p3photo .ph-tag{position:absolute; top:10px; left:10px; background:rgba(255,255,255,.94); backdrop-filter:blur(6px); font-size:.66rem; font-weight:800; color:var(--ok); padding:5px 11px; border-radius:999px; display:flex; align-items:center; gap:6px;}
.p3photo .ph-tag .dot{width:7px; height:7px; border-radius:50%; background:var(--ok);}
.p3photo .ph-pr{position:absolute; bottom:10px; right:10px; background:rgba(10,14,20,.82); backdrop-filter:blur(6px); color:#fff; font-size:.74rem; font-weight:800; padding:5px 12px; border-radius:999px; font-family:ui-monospace,monospace;}

/* flotante "actividad reciente" — reubicado arriba-derecha para NO tapar la barra de ocupación */
.fp{position:absolute; top:112px; right:-14px; border-radius:14px; border:1px solid var(--line); background:rgba(255,255,255,.96); backdrop-filter:blur(16px); box-shadow:0 18px 44px -18px rgba(3,64,90,.4); padding:11px 14px; z-index:8;}
.fp .fl{color:var(--soft); font-size:.6rem; font-weight:800; text-transform:uppercase; letter-spacing:.5px; margin-bottom:6px;}
.fp .fr{display:flex; align-items:center; gap:8px; font-size:.74rem; font-weight:700;}
.fp .fi{width:22px; height:22px; border-radius:7px; display:grid; place-items:center; font-size:.7rem; background:#e4f7ef; color:var(--ok);}

/* ============================================================
   SERVICIOS — "Qué hacemos"
   ============================================================ */
/* "Qué hacemos" — iconos duotone grandes a color (estilo calugas) con efecto propio:
   número fantasma 01-04 de fondo + onda de color desde el icono en hover + rebote elástico. */
.svc4{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.scard{position:relative; overflow:hidden; background:#fff; border:1px solid transparent; border-radius:16px; padding:32px 26px; text-align:center; box-shadow:0 4px 24px rgba(2,6,23,.08); transition:transform .35s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);}
.scard::after{content:attr(data-n); position:absolute; top:6px; right:14px; font-size:4.4rem; font-weight:900; line-height:1; color:rgba(3,119,159,.06); letter-spacing:-2px; transition:.4s var(--ease); pointer-events:none;}
.scard:hover{transform:translateY(-6px); box-shadow:0 12px 40px rgba(2,6,23,.12); border-color:var(--accent);}
.scard:hover::after{color:rgba(3,119,159,.13); transform:translateY(4px) scale(1.08);}
.scard::before{content:""; position:absolute; top:58px; left:50%; width:220px; height:220px; margin-left:-110px; border-radius:50%; background:radial-gradient(circle, var(--wash, rgba(3,119,159,.09)) 0%, transparent 65%); transform:scale(0); opacity:0; transition:transform .5s var(--ease), opacity .4s ease; pointer-events:none;}
.scard:hover::before{transform:scale(1.6); opacity:1;}
.scard.c-teal{--wash:rgba(3,119,159,.10);}
.scard.c-gold{--wash:rgba(217,119,6,.10);}
.scard.c-green{--wash:rgba(5,150,105,.10);}
.scard.c-blue{--wash:rgba(29,78,216,.10);}
.scard .svc-icon{position:relative; font-size:52px; line-height:1; margin-bottom:20px; display:inline-block; --fa-secondary-opacity:.35; transition:transform .45s cubic-bezier(.34,1.56,.64,1);}
.scard:hover .svc-icon{transform:translateY(-6px) scale(1.1);}
.scard .svc-icon.ic-teal{--fa-primary-color:var(--accent); --fa-secondary-color:#0ea5e9;}
.scard .svc-icon.ic-gold{--fa-primary-color:#d97706; --fa-secondary-color:#fbbf24;}
.scard .svc-icon.ic-green{--fa-primary-color:#059669; --fa-secondary-color:#34d399;}
.scard .svc-icon.ic-blue{--fa-primary-color:#1d4ed8; --fa-secondary-color:#60a5fa;}
.scard h3{position:relative; font-size:1.25rem; font-weight:700; line-height:1.3;}
.scard p{position:relative; font-size:1.02rem; color:var(--muted); line-height:1.6; margin-top:8px;}

/* ============================================================
   PRECIOS
   ============================================================ */
.pr-concept{display:inline-flex; align-items:center; gap:9px; background:#f2fafc; border:1px solid #d6eef5; color:var(--accent); border-radius:999px; padding:9px 18px; font-size:.9rem; font-weight:700; margin-top:6px;}

/* "A mayor arriendo, menor tasa" — escalera de tasas interactiva + simulador (10-07-2026):
   6 barras descendentes (la forma cuenta la historia) + slider de arriendo en UF que
   ilumina el tramo activo y calcula la comisión estimada en vivo. */
.cur-switch{display:flex; flex-direction:column; align-items:center; gap:8px; margin:-8px 0 34px;}
.cur-switch .cs-row{display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap;}
.cur-switch .cs-pill{display:inline-flex; background:#eef4f8; border-radius:999px; padding:5px; gap:4px;}
.cs-input{display:inline-flex; align-items:center; gap:8px; background:#fff; border:1.5px solid var(--line); border-radius:999px; padding:9px 20px; transition:.2s var(--ease);}
.cs-input:focus-within{border-color:var(--accent); box-shadow:0 0 0 3px rgba(3,119,159,.12);}
.cs-input .ci-pre{font-weight:800; color:var(--accent); font-size:1rem;}
.cs-input input{border:none; outline:none; width:120px; font-family:inherit; font-weight:700; font-size:1.1rem; color:var(--ink); background:transparent;}
.cs-input input::placeholder{color:var(--soft); font-weight:500;}
.cur-switch button{border:none; cursor:pointer; background:transparent; color:var(--muted); font-weight:700; font-size:1rem; padding:10px 26px; border-radius:999px; transition:.25s var(--ease); font-family:inherit;}
.cur-switch button:hover{color:var(--accent);}
.cur-switch button.on{background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; box-shadow:0 6px 16px -6px rgba(3,119,159,.55);}
.cur-switch .cs-ref{font-size:.82rem; color:var(--soft); font-family:ui-monospace,monospace;}
/* tabla de precios tradicional (antes de la calculadora) */
.ptabla-wrap{overflow-x:auto; margin:30px 0 6px; border:1px solid var(--line); border-radius:16px; box-shadow:0 14px 40px -26px rgba(3,64,90,.35); background:#fff; -webkit-overflow-scrolling:touch;}
.ptabla{width:100%; border-collapse:collapse; min-width:600px; font-size:1rem;}
.ptabla thead th{background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; font-weight:800; font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; padding:14px 20px; text-align:left; white-space:nowrap;}
.ptabla tbody td{padding:15px 20px; border-top:1px solid var(--line); color:var(--muted); vertical-align:middle;}
.ptabla tbody tr:nth-child(even){background:#f8fbfc;}
.ptabla tbody tr:hover{background:#eef7fa;}
.ptabla td .arr{color:var(--ink); font-weight:800; font-family:ui-monospace,monospace;}
.ptabla .pc{font-weight:900; color:var(--accent); font-size:1.3rem; letter-spacing:-.02em;}
.ptabla .piso{white-space:nowrap;}
.calc-intro{text-align:center; margin:48px 0 6px;}
.calc-intro h3{font-size:clamp(1.4rem,2.6vw,1.9rem); font-weight:900; letter-spacing:-.02em;}
.calc-intro p{color:var(--muted); max-width:540px; margin:10px auto 0; font-size:1.05rem;}
.calc-intro .cue{display:inline-flex; align-items:center; gap:8px; margin-top:14px; background:#e6f4f9; color:var(--accent); font-weight:800; font-size:.9rem; padding:8px 15px; border-radius:999px;}
.tasas-lab{display:grid; grid-template-columns:1.5fr 1fr; gap:36px; align-items:stretch;}
.stairwrap{display:flex; flex-direction:column;}
.stair{display:grid; grid-template-columns:repeat(6,1fr); gap:12px; align-items:end; height:250px; margin-bottom:58px;}
.step{position:relative; display:flex; justify-content:center; background:#edf3f7; border-radius:14px 14px 6px 6px; cursor:pointer; transition:.3s var(--ease); padding-top:14px;}
.step .spct{font-weight:900; font-size:1.3rem; color:var(--muted); letter-spacing:-.02em; transition:.3s; white-space:nowrap;}
.step .srng{position:absolute; bottom:-50px; left:0; right:0; text-align:center; font-size:.8rem; color:var(--soft); line-height:1.35; font-weight:600;}
.step .srng b{display:block; color:var(--muted); font-family:ui-monospace,monospace; font-size:.72rem; letter-spacing:1px; margin-bottom:2px;}
.step:hover{background:#dfeaf1;}
.step.on{background:linear-gradient(180deg,var(--accent),var(--deep)); box-shadow:0 14px 30px -12px rgba(3,119,159,.55); transform:translateY(-6px);}
.step.on .spct{color:#fff;}
.step.on .srng b{color:var(--accent);}
.ufslider input[type=range]{width:100%; accent-color:var(--accent); height:6px; cursor:pointer;}
.ufslider .ufscale{display:flex; justify-content:space-between; font-size:.76rem; color:var(--soft); font-family:ui-monospace,monospace; margin-top:6px;}
.ufslider .ufhint{text-align:center; font-size:.98rem; color:var(--muted); margin-top:14px;}
.tasa-out{background:#fff; border-radius:18px; box-shadow:0 4px 24px rgba(2,6,23,.08); border:1px solid var(--line); padding:32px 30px; display:flex; flex-direction:column;}
.tasa-out .t-uf{font-size:1.05rem; color:var(--muted);}
.tasa-out .t-uf b{color:var(--ink); font-size:1.4rem; font-weight:800;}
.tasa-out .t-pct{font-size:4.2rem; font-weight:900; color:var(--accent); letter-spacing:-.04em; line-height:1.05; margin:8px 0 2px;}
.tasa-out .t-pct small{font-size:1.4rem; font-weight:700; color:var(--muted); letter-spacing:0;}
.tasa-out .t-pct.bump{animation:tBump .32s var(--ease);}
@keyframes tBump{40%{transform:scale(1.07);}100%{transform:scale(1);}}
.tasa-out .t-tag{display:inline-flex; align-self:flex-start; gap:8px; align-items:center; background:#f2fafc; color:var(--accent); font-weight:700; font-size:.9rem; padding:6px 14px; border-radius:999px; margin:8px 0 14px;}
.tasa-out .t-desc{font-size:1.02rem; color:var(--muted); line-height:1.5;}
.tasa-out .t-piso{font-size:.98rem; color:var(--soft); border-top:1px solid var(--line); margin-top:14px; padding-top:14px;}
.tasa-out .t-piso b{color:var(--ink);}
.tasa-out .t-com{margin-top:16px; background:linear-gradient(135deg,#f2fafc,#e7f3f8); border-radius:14px; padding:16px 18px; font-size:1rem; color:var(--muted);}
.tasa-out .t-com b{display:block; font-size:1.5rem; font-weight:900; color:var(--accent); margin-top:2px;}
/* seleccionada (estilo featured G1: borde gradiente + escala + sombra) */
/* (reglas .tcard retiradas 10-07-2026: la grilla de tramos fue reemplazada por la escalera interactiva .tasas-lab) */

/* comisión arriendo + ejemplo destacado */
.pr-2col{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:28px; align-items:stretch;}
.arr-card{border:1px solid var(--line); border-radius:20px; padding:32px; background:#fff;}
.arr-card h3{font-size:1.25rem; font-weight:800;}
.arr-card .big{font-size:2.6rem; font-weight:900; color:var(--accent); letter-spacing:-.03em; margin:14px 0 4px; line-height:1;}
.arr-card .eq{font-size:.9rem; color:var(--soft);}
.arr-card ul{list-style:none; margin-top:18px; display:flex; flex-direction:column; gap:11px;}
.arr-card li{display:flex; gap:10px; font-size:.96rem; align-items:flex-start; color:var(--muted);}
.arr-card li strong{color:var(--ink); font-weight:700;}
.ej-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; align-items:stretch;}
.ej-card{border:2px solid var(--accent); border-radius:20px; padding:32px; background:linear-gradient(150deg,#f2fafc,#fff); position:relative; display:flex; flex-direction:column; height:100%;}
.ej-card .tag{position:absolute; top:-13px; left:28px; background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; font-size:.72rem; font-weight:800; padding:6px 15px; border-radius:999px; letter-spacing:.5px;}
.ej-card h3{font-size:1.15rem; font-weight:800; margin-bottom:4px; min-height:2.8em;}
.ej-card .subej{font-size:.9rem; color:var(--muted); margin-bottom:20px; min-height:2.6em;}
.ej-rows{display:flex; flex-direction:column; gap:12px;}
.ej-line{display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border-radius:12px; font-size:.95rem;}
.ej-line.mkt{background:#fff; border:1px solid var(--line);}
.ej-line.pro{background:#e4f7ef; border:1px solid #bfe9d5;}
.ej-line .lbl{font-weight:600; color:var(--muted);} .ej-line.pro .lbl{color:var(--ink); font-weight:700;}
.ej-line .amt{font-family:ui-monospace,monospace; font-weight:800; font-size:1.02rem;}
.ej-line.mkt .amt{color:var(--muted); text-decoration:line-through; text-decoration-color:#cfd6dc;}
.ej-line.pro .amt{color:var(--ok);}
.ej-save{text-align:center; margin-top:auto; padding-top:18px; font-size:1.05rem; font-weight:800; color:var(--accent);}
.ej-save .ej-year{display:block; font-size:.85rem; font-weight:600; color:var(--muted); margin-top:4px;}
.ej-save b{font-size:1.3rem; color:var(--ok);}

/* descuento volumen */
/* Descuento por volumen — flip cards 3D (efecto del showcase-novedades, NOVEDAD 07):
   giran en secuencia revelando un ejemplo concreto en el reverso. */
.vol{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:900px; margin:0 auto;}
.vflip{perspective:1000px; height:215px;}
.vflip .inner{position:relative; width:100%; height:100%; transform-style:preserve-3d; animation:flipCard 8s var(--ease) infinite;}
.vflip:nth-child(2) .inner{animation-delay:1.2s;}
.vflip:nth-child(3) .inner{animation-delay:2.4s;}
@keyframes flipCard{0%,38%{transform:rotateY(0);}50%,88%{transform:rotateY(180deg);}100%{transform:rotateY(360deg);}}
.vflip .face{position:absolute; inset:0; backface-visibility:hidden; border-radius:18px; padding:26px 22px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; border:1px solid var(--line); background:#fff;}
.vflip .back{background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; transform:rotateY(180deg); border:none;}
.vflip .pct{font-size:2.8rem; font-weight:900; color:var(--accent); letter-spacing:-.03em; line-height:1;}
.vflip.zero .front{background:#f6fafb;}
.vflip.zero .pct{color:var(--soft);}
.vflip .rng{font-size:1.05rem; font-weight:800; margin-top:8px;}
.vflip .cond{font-size:.95rem; color:var(--muted); margin-top:5px;}
.vflip .back .kk{font-size:.74rem; text-transform:uppercase; letter-spacing:1px; color:rgba(255,255,255,.85); font-weight:700; margin-bottom:8px;}
.vflip .back .vv{font-size:1.65rem; font-weight:900; letter-spacing:-.02em;}
.vflip .back .lbl{font-size:.98rem; color:rgba(255,255,255,.92); margin-top:7px; line-height:1.45;}
@media (prefers-reduced-motion:reduce){ .vflip .inner{animation:none;} }
.vol-note{text-align:center; color:var(--muted); font-size:.96rem; max-width:720px; margin:26px auto 0;}

/* brochure CTA */
.broc{margin:44px auto 0; max-width:820px; background:linear-gradient(135deg,var(--accent),var(--accent-2)); border-radius:22px; padding:38px 40px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; color:#fff;}
.broc .txt h3{font-size:1.4rem; font-weight:900; letter-spacing:-.02em;}
.broc .txt h3 .fa-duotone{--fa-primary-color:#fff; --fa-secondary-color:#fff; --fa-secondary-opacity:.5; margin-right:8px;}
.broc .txt p{opacity:.92; margin-top:6px; font-size:1rem;}
.broc .btn{background:#fff; color:var(--accent); font-size:1.05rem; padding:16px 28px;}
.broc .btn:hover{transform:translateY(-2px); box-shadow:0 16px 34px -14px rgba(0,0,0,.4);}

/* incluido en todos */
/* Calugas "Incluido en todos los planes" — estilo prototipo precios (index-precios2):
   iconos duotone grandes a color, tarjeta blanca radius 16, hover lift + borde teal.
   Textos ampliados para audiencia 50-60 años (legibilidad en móvil). */
.incl{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.icard{position:relative; overflow:hidden; background:#fff; border:1px solid transparent; border-radius:16px; padding:32px 28px; text-align:center; box-shadow:0 4px 24px rgba(2,6,23,.08); transition:transform .45s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease), opacity .6s ease;}
.icard::before{content:""; position:absolute; top:0; left:22%; right:22%; height:3px; border-radius:0 0 6px 6px; background:linear-gradient(90deg,var(--accent),var(--accent-3)); opacity:0; transition:.35s var(--ease);}
.icard.pre{opacity:0; transform:translateY(24px);}
.icard.in{opacity:1; transform:translateY(0);}
.icard:hover{transform:translateY(-4px); box-shadow:0 12px 40px rgba(2,6,23,.12); border-color:var(--accent);}
.icard:hover::before{opacity:1; left:0; right:0;}
.icard .benef-icon{font-size:52px; line-height:1; margin-bottom:20px; display:inline-block; --fa-secondary-opacity:.35; transition:transform .35s var(--ease);}
.icard:hover .benef-icon{transform:scale(1.12) rotate(-4deg);}
.icard .benef-icon.ic-teal{--fa-primary-color:var(--accent); --fa-secondary-color:#0ea5e9;}
.icard .benef-icon.ic-green{--fa-primary-color:#059669; --fa-secondary-color:#34d399;}
.icard .benef-icon.ic-gold{--fa-primary-color:#d97706; --fa-secondary-color:#fbbf24;}
.icard .benef-icon.ic-blue{--fa-primary-color:#1d4ed8; --fa-secondary-color:#60a5fa;}
.icard h4{font-size:1.25rem; font-weight:700; line-height:1.3;}
.icard p{font-size:1.05rem; color:var(--muted); line-height:1.6; margin-top:8px;}
@media (prefers-reduced-motion:reduce){
  .icard.pre{opacity:1; transform:none;}
  .icard, .icard .benef-icon{transition:none;}
}

/* portal de clientes (Mi Portal) */
/* Sección "Con tu portal online podrás ver" — equivalente moderno de la sección
   "CON NUESTRO SISTEMA ONLINE PODRAS VER" del sitio prod, basada en las secciones
   REALES de mi.prorenta.cl (levantadas el 11-07-2026): dashboard, indicadores
   de ingresos, cashflow, liquidaciones, facturas, propiedades/contratos, servicios,
   mapa, calculadoras y atajos. Twist propio: píldora monoespaciada con la ruta del
   módulo (eco del .pcmd del calendario) que se enciende teal en hover. */
.mp-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.mpcard{position:relative; overflow:hidden; display:flex; flex-direction:column; background:#fff; border:1px solid transparent; border-radius:16px; padding:30px 28px 24px; box-shadow:0 4px 24px rgba(2,6,23,.08); transition:transform .45s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease), opacity .6s ease;}
.mpcard::before{content:""; position:absolute; top:0; left:22%; right:22%; height:3px; border-radius:0 0 6px 6px; background:linear-gradient(90deg,var(--accent),var(--accent-3)); opacity:0; transition:.35s var(--ease);}
.mpcard.pre{opacity:0; transform:translateY(24px);}
.mpcard.in{opacity:1; transform:translateY(0);}
.mpcard:hover{transform:translateY(-4px); box-shadow:0 12px 40px rgba(2,6,23,.12); border-color:var(--accent);}
.mpcard:hover::before{opacity:1; left:0; right:0;}
.mpcard .mp-icon{font-size:52px; line-height:1; margin-bottom:18px; display:inline-block; align-self:flex-start; --fa-secondary-opacity:.35; transition:transform .35s var(--ease);}
.mpcard:hover .mp-icon{transform:scale(1.12) rotate(-4deg);}
.mpcard .mp-icon.ic-teal{--fa-primary-color:var(--accent); --fa-secondary-color:#0ea5e9;}
.mpcard .mp-icon.ic-green{--fa-primary-color:#059669; --fa-secondary-color:#34d399;}
.mpcard .mp-icon.ic-gold{--fa-primary-color:#d97706; --fa-secondary-color:#fbbf24;}
.mpcard .mp-icon.ic-blue{--fa-primary-color:#1d4ed8; --fa-secondary-color:#60a5fa;}
.mpcard h4{font-size:1.25rem; font-weight:700; line-height:1.3;}
.mpcard p{font-size:1.02rem; color:var(--muted); line-height:1.6; margin-top:8px; flex:1;}
.mp-route{font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.72rem; font-weight:600; color:var(--soft); background:#f4f7f9; border:1px solid var(--line); border-radius:999px; padding:5px 12px; display:inline-block; align-self:flex-start; margin-top:16px; letter-spacing:.3px; transition:.25s var(--ease);}
.mpcard:hover .mp-route{color:var(--accent); border-color:var(--accent-3); background:#e6f4f9;}
.mp-cta{text-align:center; margin-top:36px;}
.mp-cta .mp-note{display:block; color:var(--soft); font-size:.92rem; margin-top:12px;}
@media (max-width:960px){.mp-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.mp-grid{grid-template-columns:1fr;}}
@media (prefers-reduced-motion:reduce){
  .mpcard.pre{opacity:1; transform:none;}
  .mpcard, .mpcard .mp-icon{transition:none;}
}

/* simulador KPIs del portal (estilo "Ficha de propiedad en vivo" · Módulo 01 showcase-modulos) */
/* Reutiliza .cal-grid2 / .cal-txt / .portal-stage / .portal del calendario de cobros.
   KPIs basados en el dashboard REAL de miportal: propiedades/ocupación, ICP
   (cumplimiento de pago con semáforo), renta del mes y vacancia hist/24m/12m. */
.kpi-chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:20px;}
.kchip{font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.72rem; font-weight:600; color:var(--muted); border:1px solid var(--line); background:#fff; padding:6px 11px; border-radius:8px; display:inline-flex; gap:7px; align-items:center;}
.kchip .d{width:7px; height:7px; border-radius:50%;} .kchip .d.ok{background:var(--ok);} .kchip .d.ac{background:var(--accent);}
.kpi-tiles{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.ktile{border:1px solid var(--line); border-radius:14px; padding:14px 16px; background:#fff;}
.ktile .kk{font-size:.66rem; color:var(--soft); font-weight:800; text-transform:uppercase; letter-spacing:.5px; display:flex; justify-content:space-between; align-items:center;}
.ktile .kk .live{width:7px; height:7px; border-radius:50%; background:var(--ok); box-shadow:0 0 0 0 rgba(15,157,107,.5); animation:kpulse 2.4s infinite;}
@keyframes kpulse{70%{box-shadow:0 0 0 8px rgba(15,157,107,0);}100%{box-shadow:0 0 0 0 rgba(15,157,107,0);}}
.ktile .kv{font-size:1.7rem; font-weight:900; letter-spacing:-.04em; margin-top:4px; font-variant-numeric:tabular-nums; line-height:1.1;}
.ktile .kv small{font-size:.92rem; font-weight:800; color:var(--soft); margin-left:2px;}
.ktile .ks{font-size:.73rem; color:var(--muted); margin-top:3px; font-weight:600;}
.kmeter{height:7px; border-radius:999px; background:#eef1f3; overflow:hidden; margin-top:10px;}
.kmeter>span{display:block; height:100%; width:0; border-radius:999px; background:linear-gradient(90deg,var(--accent),var(--accent-3)); transition:width 1.6s var(--ease);}
.kmeter>span.ok{background:linear-gradient(90deg,#0f9d6b,#34d399);}
.kseg{display:flex; height:7px; border-radius:999px; overflow:hidden; margin-top:10px; background:#eef1f3;}
.kseg span{display:block; height:100%; width:0; transition:width 1.6s var(--ease);}
.kseg .sg-g{background:#0f9d6b;} .kseg .sg-y{background:#f0b429;} .kseg .sg-r{background:var(--alert);}
.kbars{margin-top:10px;}
.kb{display:grid; grid-template-columns:34px 1fr 38px; align-items:center; gap:8px; margin-top:7px; font-size:.64rem; color:var(--soft); font-weight:700;}
.kb i{height:6px; background:#eef1f3; border-radius:999px; overflow:hidden; display:block;}
.kb b{display:block; height:100%; width:0; border-radius:999px; background:linear-gradient(90deg,var(--accent),var(--accent-3)); transition:width 1.4s var(--ease);}
.kb b.ok{background:linear-gradient(90deg,#0f9d6b,#34d399);}
.kb em{font-style:normal; text-align:right; font-variant-numeric:tabular-nums; color:var(--muted);}
.kpi-panel.go .kmeter>span, .kpi-panel.go .kseg span, .kpi-panel.go .kb b{width:var(--w);}
.kpi-fp{position:absolute; z-index:10; right:-18px; bottom:-16px; border-radius:14px; border:1px solid var(--line); background:rgba(255,255,255,.96); backdrop-filter:blur(18px); box-shadow:0 20px 50px -18px rgba(3,64,90,.4); padding:12px 14px; min-width:250px;}
.kpi-fp .fl{color:var(--soft); font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.4px; margin-bottom:6px;}
.kpi-fp .fr{display:flex; align-items:center; gap:8px; font-size:.76rem; font-weight:700;}
.kpi-fp .fi{width:22px; height:22px; border-radius:7px; display:grid; place-items:center; font-size:.72rem; flex-shrink:0;}
.kpi-fp .fi.ok{background:#e4f7ef; color:var(--ok);}
.kpi-fp .fi.ac{background:#e6f4f9; color:var(--accent);}
.kpi-fp.tick{animation:kfp .45s var(--ease);}
@keyframes kfp{0%{transform:translateY(7px); opacity:.35;}100%{transform:translateY(0); opacity:1;}}
@media(max-width:820px){.kpi-fp{position:static; margin:14px auto 0; width:max-content; max-width:100%;}}
@media(max-width:480px){.kpi-tiles{grid-template-columns:1fr;}}
@media (prefers-reduced-motion:reduce){
  .kmeter>span, .kseg span, .kb b{transition:none;}
  .kk .live, .kpi-fp.tick{animation:none;}
}

/* equipo interno */
/* Sección "Equipo interno" — estilo prototipo precios (index-precios2):
   badge dorado, barra de precio teal, flujo de 6 pasos con iconos duotone + flechas,
   4 tarjetas de diferenciación con icono y checklist. Textos ampliados (50-60 años). */
.badge-col{display:inline-block; background:linear-gradient(135deg,#d97706,#f59e0b); color:#fff; padding:9px 26px; border-radius:50px; font-size:.95rem; font-weight:700; letter-spacing:.5px; text-transform:uppercase; margin-bottom:18px;}
.badge-col i, .badge-col svg{margin-right:8px;}
.precio-bar{display:flex; align-items:center; justify-content:center; gap:32px; background:linear-gradient(135deg,var(--accent) 0%,var(--deep) 100%); border-radius:16px; padding:30px 36px; margin-bottom:48px; color:#fff; flex-wrap:wrap; position:relative; overflow:hidden;}
.precio-bar::after{content:""; position:absolute; top:0; bottom:0; left:-60%; width:40%; background:linear-gradient(100deg,transparent,rgba(255,255,255,.15),transparent); transform:skewX(-18deg); animation:pbSheen 6s ease-in-out infinite; pointer-events:none;}
@keyframes pbSheen{0%,55%{left:-60%;} 90%,100%{left:130%;}}
.precio-bar .cpb-valor{font-size:3rem; font-weight:800; line-height:1;}
.precio-bar .cpb-detalle{font-size:1.13rem; opacity:.92; line-height:1.5;}
.precio-bar .cpb-sep{width:1px; height:48px; background:rgba(255,255,255,.25);}
.precio-bar .cpb-min{display:flex; align-items:center; gap:10px; background:rgba(255,255,255,.15); padding:12px 22px; border-radius:50px; font-size:1.02rem; font-weight:600;}
/* Timeline animada: línea que se dibuja + pasos que se encienden en secuencia (10-07-2026) */
.cflow{display:grid; grid-template-columns:repeat(6,1fr); gap:16px; margin-bottom:48px; position:relative;}
.cflow::before{content:""; position:absolute; top:17px; left:8.33%; right:8.33%; height:3px; background:var(--line); border-radius:3px;}
.cflow .cfill{position:absolute; top:17px; left:8.33%; width:83.34%; height:3px; border-radius:3px; background:linear-gradient(90deg,var(--accent),var(--accent-3)); transform:scaleX(0); transform-origin:left; transition:transform 1.7s var(--ease);}
.cflow.go .cfill{transform:scaleX(1);}
.flow-step{text-align:center; position:relative; z-index:1;}
.flow-step .flow-num{display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; background:#c9d6df; color:#fff; font-size:.95rem; font-weight:700; margin-bottom:10px; box-shadow:0 0 0 5px var(--paper); transition:.4s var(--ease);}
.bg-soft .flow-step .flow-num{box-shadow:0 0 0 5px #f6fafb;}
.flow-step.lit .flow-num{background:var(--accent); box-shadow:0 0 0 5px #f6fafb, 0 6px 16px -4px rgba(3,119,159,.55); transform:scale(1.12);}
.cflow.prep .flow-step .flow-icon, .cflow.prep .flow-step h4, .cflow.prep .flow-step p{opacity:.22; filter:grayscale(.9); transform:translateY(8px); transition:.5s var(--ease);}
.cflow.prep .flow-step.lit .flow-icon, .cflow.prep .flow-step.lit h4, .cflow.prep .flow-step.lit p{opacity:1; filter:none; transform:translateY(0);}
.flow-step .flow-icon{font-size:38px; margin-bottom:12px; display:block; --fa-secondary-opacity:.35;}
.flow-step .flow-icon.ic-teal{--fa-primary-color:var(--accent); --fa-secondary-color:#0ea5e9;}
.flow-step .flow-icon.ic-gold{--fa-primary-color:#d97706; --fa-secondary-color:#fbbf24;}
.flow-step .flow-icon.ic-green{--fa-primary-color:#059669; --fa-secondary-color:#34d399;}
.flow-step .flow-icon.ic-blue{--fa-primary-color:#1d4ed8; --fa-secondary-color:#60a5fa;}
.flow-step h4{font-size:1.13rem; font-weight:700; line-height:1.3; margin:0 0 6px;}
.flow-step p{font-size:.98rem; color:var(--muted); line-height:1.55; margin:0;}
/* (chevrons ::after retirados 10-07-2026: la timeline con línea de progreso los reemplaza) */
.cdiff{display:grid; grid-template-columns:repeat(2,1fr); gap:28px;}
.col-diff-card{background:#f8fafc; border-radius:16px; padding:34px 30px; border:1px solid var(--line); transition:.3s var(--ease);}
.col-diff-card:hover{box-shadow:0 12px 40px rgba(2,6,23,.12); border-color:var(--accent);}
.col-diff-card .cdc-header{display:flex; align-items:center; gap:14px; margin-bottom:16px;}
.col-diff-card .cdc-icon{font-size:34px; --fa-secondary-opacity:.35; padding:13px; border-radius:14px; box-sizing:content-box; background:#f2fafc;}
.col-diff-card .cdc-icon.ic-teal{background:rgba(3,119,159,.09);}
.col-diff-card .cdc-icon.ic-green{background:rgba(5,150,105,.09);}
.col-diff-card .cdc-icon.ic-gold{background:rgba(217,119,6,.10);}
.col-diff-card .cdc-icon.ic-blue{background:rgba(29,78,216,.08);}
.col-diff-card .cdc-icon.ic-teal{--fa-primary-color:var(--accent); --fa-secondary-color:#0ea5e9;}
.col-diff-card .cdc-icon.ic-gold{--fa-primary-color:#d97706; --fa-secondary-color:#fbbf24;}
.col-diff-card .cdc-icon.ic-green{--fa-primary-color:#059669; --fa-secondary-color:#34d399;}
.col-diff-card .cdc-icon.ic-blue{--fa-primary-color:#1d4ed8; --fa-secondary-color:#60a5fa;}
.col-diff-card h4{font-size:1.32rem; font-weight:700; line-height:1.3; margin:0;}
.col-diff-card>p{font-size:1.05rem; color:var(--muted); line-height:1.6; margin:0 0 14px;}
.col-diff-card ul{list-style:none; padding:0; margin:0;}
.col-diff-card ul li{display:flex; align-items:flex-start; gap:10px; padding:8px 0; font-size:1.05rem; color:var(--ink); line-height:1.55;}
.col-diff-card ul li i, .col-diff-card ul li svg{color:#00c220; font-size:1rem; margin-top:5px; flex-shrink:0;}

/* personas + IA */
/* Sección "Personas Reales + IA" — estilo prototipo precios (index-precios2):
   fondo gradiente celeste→verde suave, badge teal, 4 columnas verticales,
   iconos duotone 48px a color, checks verdes. Textos ampliados (50-60 años). */
.hia-sec{position:relative; overflow:hidden; background:linear-gradient(180deg,#f6fafb 0%,#e7f3f8 100%); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.hia-sec::before{content:""; position:absolute; top:-220px; left:-160px; width:520px; height:520px; background:radial-gradient(circle,rgba(3,119,159,.06) 0%,transparent 70%); border-radius:50%;}
.hia-sec::after{content:""; position:absolute; bottom:-220px; right:-160px; width:520px; height:520px; background:radial-gradient(circle,rgba(95,208,239,.10) 0%,transparent 70%); border-radius:50%;}
.hia-sec .wrap{position:relative; z-index:1;}
.badge-hia{display:inline-block; background:var(--accent); color:#fff; padding:9px 26px; border-radius:50px; font-size:.95rem; font-weight:700; letter-spacing:.5px; text-transform:uppercase; margin-bottom:18px;}
.pia{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.pia-card{background:#fff; border-radius:16px; padding:36px 28px; box-shadow:0 4px 24px rgba(2,6,23,.08); border:1px solid transparent; transition:.3s var(--ease);}
.pia-card:hover{transform:translateY(-4px); box-shadow:0 12px 40px rgba(2,6,23,.12); border-color:var(--accent);}
.pia-card .hia-icon{font-size:48px; margin-bottom:18px; display:inline-block; --fa-secondary-opacity:.35;}
.pia-card .hia-icon.ic-teal{--fa-primary-color:var(--accent); --fa-secondary-color:#0ea5e9;}
.pia-card .hia-icon.ic-green{--fa-primary-color:#059669; --fa-secondary-color:#34d399;}
.pia-card .hia-icon.ic-gold{--fa-primary-color:#d97706; --fa-secondary-color:#fbbf24;}
.pia-card .hia-icon.ic-blue{--fa-primary-color:#1d4ed8; --fa-secondary-color:#60a5fa;}
.pia-card h4{font-size:1.28rem; font-weight:700; line-height:1.3; margin:0 0 12px;}
.pia-card>p{font-size:1.05rem; color:var(--muted); line-height:1.7; margin:0 0 16px;}
.pia-card ul{list-style:none; padding:0; margin:0;}
.pia-card li{display:flex; align-items:flex-start; gap:10px; padding:8px 0; font-size:1.02rem; color:var(--ink); line-height:1.55;}
.pia-card li i, .pia-card li svg{color:#00c220; font-size:.95rem; margin-top:5px; flex-shrink:0;}

/* detalle servicios acordeón */
/* Panel de Transparencia — reemplaza el acordeón de servicios (10-07-2026):
   franja de contadores + rail de categorías + filtro incluido/con costo + filas con badge. */
.transp-strip{display:flex; align-items:center; justify-content:center; gap:44px; flex-wrap:wrap; background:linear-gradient(135deg,var(--accent),var(--deep)); border-radius:18px; padding:30px 36px; margin-bottom:30px; color:#fff; position:relative; overflow:hidden;}
.transp-strip::after{content:""; position:absolute; top:0; bottom:0; left:-60%; width:40%; background:linear-gradient(100deg,transparent,rgba(255,255,255,.13),transparent); transform:skewX(-18deg); animation:pbSheen 7s ease-in-out infinite;}
.transp-strip .ts-item{text-align:center;}
.transp-strip .ts-num{font-size:2.6rem; font-weight:900; line-height:1; letter-spacing:-.02em;}
.transp-strip .ts-lbl{font-size:.95rem; opacity:.9; margin-top:6px;}
.transp-strip .ts-motto{display:flex; align-items:center; gap:12px; background:rgba(255,255,255,.14); padding:14px 24px; border-radius:999px; font-weight:700; font-size:1.05rem;}
.tpanel{display:grid; grid-template-columns:260px 1fr; gap:24px; align-items:start;}
.trail{display:flex; flex-direction:column; gap:8px;}
.trail button{display:flex; align-items:center; gap:12px; width:100%; border:1px solid var(--line); background:#fff; border-radius:14px; padding:15px 18px; font-family:inherit; font-size:1.02rem; font-weight:700; color:var(--muted); cursor:pointer; transition:.25s var(--ease); text-align:left;}
.trail button .tr-n{margin-left:auto; font-size:.8rem; font-weight:700; background:#eef4f8; color:var(--muted); padding:3px 10px; border-radius:999px;}
.trail button:hover{border-color:var(--accent-3); color:var(--accent);}
.trail button.on{background:linear-gradient(135deg,var(--accent),var(--accent-2)); border-color:transparent; color:#fff; box-shadow:0 10px 24px -10px rgba(3,119,159,.55);}
.trail button.on .tr-n{background:rgba(255,255,255,.2); color:#fff;}
.tbar{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:14px;}
.tbar .tfil{display:inline-flex; background:#e8eff4; border-radius:999px; padding:4px; gap:4px;}
.tbar .tfil button{border:none; cursor:pointer; background:transparent; font-family:inherit; font-weight:700; font-size:.95rem; color:var(--muted); padding:9px 20px; border-radius:999px; transition:.25s var(--ease);}
.tbar .tfil button.on{background:#fff; color:var(--accent); box-shadow:0 3px 10px -3px rgba(2,6,23,.18);}
.tbar .tcount{font-size:.95rem; color:var(--soft);}
.tlist{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.titem{display:flex; align-items:center; justify-content:space-between; gap:14px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px 18px; transition:.25s var(--ease);}
.titem:hover{border-color:var(--accent-3); box-shadow:0 8px 20px -10px rgba(2,6,23,.18);}
.titem .tn{display:flex; align-items:flex-start; gap:10px; font-size:1.02rem; color:var(--ink); line-height:1.45;}
.titem .tn i, .titem .tn svg{margin-top:4px; flex-shrink:0; font-size:.95rem;}
.titem.inc .tn i, .titem.inc .tn svg{color:#00c220;}
.titem.cost .tn i, .titem.cost .tn svg{color:#d97706;}
.titem .tb{flex-shrink:0; font-size:.84rem; font-weight:800; padding:6px 12px; border-radius:999px; white-space:nowrap;}
.titem.inc .tb{background:#e4f7ef; color:#0b7a52;}
.titem.cost .tb{background:#fdf2e0; color:#b45309;}
.titem{animation:tIn .38s var(--ease) both;}
@keyframes tIn{from{opacity:0; transform:translateY(10px);}to{opacity:1; transform:translateY(0);}}
.titem[hidden]{display:none;}
@media (prefers-reduced-motion:reduce){ .titem{animation:none;} .transp-strip::after{animation:none;} }

.notes{margin-top:34px; font-size:.86rem; color:var(--soft); line-height:1.8; max-width:900px; margin-inline:auto; text-align:center;}
/* Historias de clientes — cinta continua de testimonios con estrellas (10-07-2026) */
.hist-head{display:flex; align-items:center; justify-content:center; gap:18px; margin-bottom:36px; flex-wrap:wrap;}
.hist-head .hh-num{font-size:3.4rem; font-weight:900; color:var(--ink); letter-spacing:-.03em; line-height:1;}
.hist-head .hh-meta{text-align:left;}
.hist-head .stars{color:#f59e0b; font-size:1.15rem; letter-spacing:2px;}
.hist-head .hh-lbl{font-size:.98rem; color:var(--muted); margin-top:4px;}
.marq{overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);}
.marq-track{display:flex; gap:20px; width:max-content; animation:marqMove 73s linear infinite;}
.marq:hover .marq-track{animation-play-state:paused;}
@keyframes marqMove{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.hcard{width:390px; flex-shrink:0; background:#fff; border:1px solid var(--line); border-radius:16px; padding:26px 26px 22px; box-shadow:0 4px 24px rgba(2,6,23,.06); position:relative; display:flex; flex-direction:column; gap:12px;}
.hcard::before{content:"\201C"; position:absolute; top:2px; right:18px; font-size:4.6rem; font-weight:900; color:rgba(3,119,159,.08); line-height:1; font-family:Georgia,serif;}
.hcard .stars{color:#f59e0b; font-size:1rem; letter-spacing:2px;}
.hcard .hq{font-size:1.05rem; color:var(--ink); line-height:1.6;}
.hcard .hw{display:flex; align-items:center; gap:12px; margin-top:auto; padding-top:12px; border-top:1px solid var(--line);}
.hcard .hav{width:42px; height:42px; border-radius:50%; background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; display:grid; place-items:center; font-weight:800; font-size:.9rem; flex-shrink:0;}
.hcard .hn{font-weight:700; font-size:.98rem;}
.hcard .hd{font-size:.86rem; color:var(--soft);}
.hcard .htag{margin-left:auto; font-size:.76rem; font-weight:800; color:var(--accent); background:#f2fafc; padding:5px 12px; border-radius:999px; white-space:nowrap;}
@media (prefers-reduced-motion:reduce){ .marq-track{animation:none;} .marq{overflow-x:auto; mask-image:none; -webkit-mask-image:none;} }

/* CTA final */
.cta-final{background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; border-radius:24px; padding:56px; text-align:center;}
.cta-final h2{font-size:clamp(1.7rem,3.5vw,2.5rem); font-weight:900; letter-spacing:-.03em;}
.cta-final p{opacity:.92; margin:12px 0 28px; font-size:1.12rem;}
.cta-final .btn{background:#fff; color:var(--accent);}

/* ============================================================
   FOOTER — NF3 base + ajustes NF1 (línea teal, contacto, línea legal)
   ============================================================ */
.ft{background:#fff; padding:52px 0 26px; border-top:3px solid var(--accent);}
.ft .grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:36px; align-items:start;}
.ft .ctabox{background:linear-gradient(135deg,#f2fafc,#e6f4f9); border:1px solid #d6eef5; border-radius:16px; padding:26px;}
.ft .ctabox h3{font-size:1.2rem; font-weight:800; letter-spacing:-.02em;}
.ft .ctabox p{font-size:.9rem; color:var(--muted); margin:8px 0 18px;}
.ft .ctabox .btn{padding:12px 22px; font-size:.92rem;}
.ft h6{color:var(--ink); font-size:.72rem; text-transform:uppercase; letter-spacing:1px; margin-bottom:15px; font-weight:800;}
.ft .lk a{display:block; margin-bottom:11px; font-size:.94rem; color:var(--muted);}
.ft .lk a:hover{color:var(--accent);}
.ft .contact-item{display:flex; gap:11px; align-items:center; margin-bottom:12px; font-size:.94rem; color:var(--muted);}
.ft .contact-item a{color:var(--muted); font-weight:600;}
.ft .contact-item a:hover{color:var(--accent);}
.ft .contact-item .ic{width:34px; height:34px; border-radius:9px; background:#f2fafc; color:var(--accent); display:grid; place-items:center; flex-shrink:0; font-size:.9rem;}
.ft .social{display:flex; gap:9px; margin-top:16px;}
.ft .social a{width:36px; height:36px; border-radius:9px; display:grid; place-items:center; font-size:.82rem; background:#f2f6f8; color:var(--ink); font-weight:700; transition:.2s;}
.ft .social a:hover{background:var(--accent); color:#fff;}
.ft .social a.yt:hover{background:#ff0000; color:#fff;}
.ft .midrow{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; border-top:1px solid var(--line); margin-top:34px; padding-top:22px;}
.ft .midrow .brand{display:flex; align-items:center; gap:14px;}
.ft .midrow img.logo{height:26px;}
.ft .midrow .copy{font-size:.86rem; color:var(--soft);}
/* fila final fusionada: logo + copyright + términos */
.ft .legalbar{border-top:1px solid var(--line); margin-top:34px; padding-top:22px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;}
.ft .legalbar .brand{display:flex; align-items:center; gap:14px;}
.ft .legalbar img.logo{height:34px;}
.ft .legalbar span, .ft .legalbar a{font-size:.84rem; color:var(--soft);}
.ft .legalbar a:hover{color:var(--accent);}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:940px){
  .hero .grid{grid-template-columns:1fr; gap:44px;}
  .hero .stage{max-width:520px;}
  .svc4{grid-template-columns:1fr 1fr;}
  .tasas-lab{grid-template-columns:1fr;}
  .pr-2col{grid-template-columns:1fr;}
  .ej-grid{grid-template-columns:1fr;}
  .incl{grid-template-columns:1fr 1fr;}
  .cflow{grid-template-columns:repeat(3,1fr); gap:20px;}
  .cflow::before, .cflow .cfill{display:none;}
  .cflow.prep .flow-step .flow-icon, .cflow.prep .flow-step h4, .cflow.prep .flow-step p{opacity:1; filter:none; transform:none;}
  .flow-step .flow-num{background:var(--accent);}
  .cdiff{grid-template-columns:1fr;} .pia{grid-template-columns:1fr 1fr;}
  .tpanel{grid-template-columns:1fr;}
  .trail{flex-direction:row; overflow-x:auto; padding-bottom:6px;}
  .trail button{white-space:nowrap; width:auto; flex-shrink:0;}
  .transp-strip{gap:26px; padding:26px 22px;}
  .precio-bar{flex-direction:column; text-align:center; gap:16px;}
  .precio-bar .cpb-sep{width:80px; height:1px;}
  .tlist{grid-template-columns:1fr;}
  .vol{grid-template-columns:1fr;}
  .ft .grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:1120px){
  .pill{gap:14px; padding-left:16px;}
  .pill nav{gap:14px; font-size:.84rem;}
  .pill .pay,.pill .portal{padding-left:10px; padding-right:10px; font-size:.8rem;}
  .pill .cta{padding-left:14px; padding-right:14px; font-size:.84rem;}
}
@media(max-width:1040px){
  .pill nav, .pill .pay, .pill .portal{display:none;}
  .pill{width:100%; justify-content:space-between; border-radius:16px; padding:10px 12px 10px 18px;}
  .burger{display:flex;}
}
@media(max-width:820px){
  .pill nav, .pill .cta, .pill .portal, .pill .pay{display:none;}
  .pill{width:100%; justify-content:space-between; border-radius:16px; padding:10px 12px 10px 18px;}
  .burger{display:flex;}
}
@media(max-width:600px){
  section{padding:52px 0;}
  .svc4{grid-template-columns:1fr;}
  .stair{gap:7px; height:205px; margin-bottom:62px;}
  .step .spct{font-size:.98rem;}
  .step .srng{font-size:.66rem; bottom:-52px;}
  .incl{grid-template-columns:1fr;}
  .cflow{grid-template-columns:1fr 1fr;}
  .pia{grid-template-columns:1fr;}
  .svc-grid{grid-template-columns:1fr;}
  .actions{flex-direction:column;} .actions .btn{width:100%;}
  .cta-final{padding:36px 22px;}
  .broc{padding:28px 24px;}
  .ft .grid{grid-template-columns:1fr;}
  .ft .midrow{flex-direction:column; align-items:flex-start;}
}
/* ============================================================
   SECCIONES NUEVAS (brief 2026-07-07): videos, quiénes somos,
   bot 7x24, calendario día 10, iPhone 24/7 — estilo G
   ============================================================ */
/* --- Sección Videos --- */
.videos-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.videos-grid .vcard{background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; transition:.22s var(--ease); cursor:pointer; text-align:left; padding:0;}
.videos-grid .vcard:hover{transform:translateY(-5px); box-shadow:var(--shadow);}
.vthumb{position:relative; aspect-ratio:16/9; overflow:hidden; background:#0a1620;}
.vthumb img{width:100%; height:100%; object-fit:cover; transition:.4s;}
.vcard:hover .vthumb img{transform:scale(1.07);}
.vplay{position:absolute; inset:0; display:grid; place-items:center; background:rgba(10,22,32,.15); transition:.2s;}
.vcard:hover .vplay{background:rgba(10,22,32,.28);}
.vplay span{width:48px; height:48px; border-radius:50%; background:rgba(255,255,255,.95); color:var(--accent); display:grid; place-items:center; font-size:1rem; padding-left:3px; box-shadow:0 8px 22px -6px rgba(0,0,0,.5); transition:.2s;}
.vcard:hover .vplay span{transform:scale(1.14); background:var(--accent); color:#fff;}
.vmeta{padding:11px 13px 13px;}
.vmeta h4{font-size:.86rem; font-weight:700; line-height:1.32; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
.vmeta .vtag{font-size:.68rem; color:var(--soft); margin-top:6px; display:flex; align-items:center; gap:6px;}
.vmeta .vtag .fa-brands{color:#ff0000;}
@media(max-width:1000px){.videos-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:720px){.videos-grid{grid-template-columns:1fr 1fr; gap:12px;}}
@media(max-width:460px){.videos-grid{grid-template-columns:1fr;}}

/* --- Modal lightbox de video --- */
.vmodal{position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center; padding:24px; background:rgba(6,14,20,.82); backdrop-filter:blur(8px); animation:vmfade .25s var(--ease);}
.vmodal.open{display:flex;}
@keyframes vmfade{from{opacity:0;}to{opacity:1;}}
.vmodal .vbox{position:relative; width:78%; max-width:1100px; animation:vmpop .3s var(--ease);}
@keyframes vmpop{from{transform:scale(.94); opacity:0;}to{transform:scale(1); opacity:1;}}
.vmodal .vframe{position:relative; aspect-ratio:16/9; border-radius:16px; overflow:hidden; box-shadow:0 40px 100px -20px rgba(0,0,0,.7); background:#000;}
.vmodal .vframe iframe{width:100%; height:100%; border:0; display:block;}
.vmodal .vclose{position:absolute; top:-48px; right:0; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.3); color:#fff; font-size:1.1rem; cursor:pointer; display:grid; place-items:center; transition:.2s;}
.vmodal .vclose:hover{background:rgba(255,255,255,.28); transform:rotate(90deg);}
.vmodal .vtitle{color:#fff; font-size:1rem; font-weight:700; margin-top:16px; text-align:center;}
@media(max-width:820px){.vmodal{padding:0;} .vmodal .vbox{width:100%; height:100%; display:flex; flex-direction:column; justify-content:center;} .vmodal .vframe{border-radius:0;} .vmodal .vclose{top:16px; right:16px; z-index:5; background:rgba(0,0,0,.5);} .vmodal .vtitle{padding:0 16px;}}

/* --- Quiénes Somos (video destacado) --- */
.qs-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center;}
.qs-video{position:relative; border-radius:20px; overflow:hidden; box-shadow:var(--shadow); aspect-ratio:16/9; background:#0a1620; cursor:pointer;}
.qs-video img{width:100%; height:100%; object-fit:cover;}
.qs-video iframe{width:100%; height:100%; border:0; display:block; position:absolute; inset:0;}
.qs-video .vplay{position:absolute; inset:0; display:grid; place-items:center;}
.qs-video .vplay span{width:76px; height:76px; border-radius:50%; background:rgba(3,119,159,.94); color:#fff; display:grid; place-items:center; font-size:1.7rem; padding-left:5px; box-shadow:0 10px 30px -6px rgba(0,0,0,.55); transition:.2s;}
.qs-video:hover .vplay span{transform:scale(1.1);}
.qs-txt h2{font-size:clamp(1.8rem,3.6vw,2.5rem); font-weight:900; letter-spacing:-.03em; line-height:1.05;}
.qs-txt p{color:var(--muted); font-size:1.08rem; margin-top:16px;}
.qs-stats{display:flex; gap:30px; margin-top:26px; flex-wrap:wrap;}
.qs-stats .qi{font-size:.9rem; color:var(--muted); display:flex; align-items:center; gap:9px; font-weight:600;}
.qs-stats .qi .fa-duotone{font-size:1.1rem;}
@media(max-width:820px){.qs-grid{grid-template-columns:1fr; gap:30px;}}

/* --- Bot 7x24 "consola que escribe sola" + mascota (estilo panel 3D del hero) --- */
.bot-grid{display:grid; grid-template-columns:.95fr 1.05fr; gap:48px; align-items:center;}
.bot-grid.rev{grid-template-columns:1.05fr .95fr;}
.bot-txt h2{font-size:clamp(1.8rem,3.6vw,2.5rem); font-weight:900; letter-spacing:-.03em; line-height:1.05;}
.bot-txt p{color:var(--muted); font-size:1.08rem; margin-top:16px;}
.bot-stage{position:relative; padding:30px 0 20px 0;}
.bot-persp{perspective:1500px;}
/* panel3d idéntico al hero para consistencia entre ventanas */
.botpanel{position:relative; max-width:430px; margin-right:auto; border-radius:20px; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow); overflow:hidden; transform:rotateY(-9deg) rotateX(5deg); transition:transform .6s var(--ease);}
.bot-persp:hover .botpanel{transform:rotateY(-3deg) rotateX(2deg);}
.botpanel::before{content:""; position:absolute; inset:0; border-radius:20px; padding:1px; background:linear-gradient(135deg,rgba(3,119,159,.55),transparent 35%,rgba(95,208,239,.45) 75%,transparent); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; z-index:5;}
/* pantalla oscura de consola dentro del panel blanco */
.botscreen{background:#0a1620; margin:14px; border-radius:12px; padding:18px 18px 16px; min-height:196px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace;}
.botscreen .tline{color:#8fb9c9; font-size:.84rem; line-height:1.85; white-space:pre-wrap;}
.botscreen .tline .ok{color:#3fd699;} .botscreen .tline .ac{color:var(--accent-3);} .botscreen .tline .pr{color:#5fd0ef;}
.botscreen .cursor{display:inline-block; width:8px; height:14px; background:var(--accent-3); vertical-align:middle; margin-left:2px; animation:blink 1s step-end infinite;}
/* mascota a la DERECHA, sobre el FONDO CLARO de la sección — NO sobre la pantalla oscura */
.bot-mascota{position:absolute; right:-42px; bottom:12px; width:150px; height:auto; z-index:7; filter:drop-shadow(0 16px 22px rgba(3,64,90,.22)); animation:botfloat 3.8s var(--ease) infinite alternate; pointer-events:none;}
@keyframes botfloat{to{transform:translateY(-10px);}}
/* tarjeta flotante "Sistema · Todo operativo" (Módulo 04) — arriba-izquierda para no chocar con la mascota */
.bot-fp{position:absolute; left:-16px; top:8px; z-index:8; border-radius:14px; border:1px solid var(--line); background:rgba(255,255,255,.96); backdrop-filter:blur(16px); box-shadow:0 18px 44px -18px rgba(3,64,90,.4); padding:11px 14px;}
.bot-fp .fl{color:var(--soft); font-size:.6rem; font-weight:800; text-transform:uppercase; letter-spacing:.5px; margin-bottom:6px;}
.bot-fp .fr{display:flex; align-items:center; gap:8px; font-size:.78rem; font-weight:700;}
.bot-fp .fi{width:22px; height:22px; border-radius:7px; display:grid; place-items:center; font-size:.7rem; background:#e4f7ef; color:var(--ok);}
@media(max-width:820px){.bot-stage{padding:24px 66px 10px 0;} .bot-mascota{width:110px; right:-10px;}}
@keyframes blink{50%{opacity:0;}}
@media(max-width:820px){.bot-grid,.bot-grid.rev{grid-template-columns:1fr; gap:34px;} .bot-avatar{top:-22px;}}

/* --- Calendario de cobros: portal 3D estilo Módulo 10 --- */
.cal-txt{max-width:520px; margin:0 0 6px;}
.cal-txt h2{font-size:clamp(1.8rem,3.6vw,2.5rem); font-weight:900; letter-spacing:-.03em; line-height:1.05;}
.cal-txt p{color:var(--muted); font-size:1.08rem; margin-top:16px;}
.cal-grid2{display:grid; grid-template-columns:.95fr 1.05fr; gap:48px; align-items:center;}
.portal-stage{position:relative; perspective:1500px;}
.portal{position:relative; border-radius:20px; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow); overflow:hidden; transform:rotateY(9deg) rotateX(5deg) rotateZ(-.4deg); transform-origin:center; transition:transform .6s var(--ease);}
.portal-stage:hover .portal{transform:rotateY(3deg) rotateX(1.5deg);}
.portal::before{content:""; position:absolute; inset:0; border-radius:20px; padding:1px; background:linear-gradient(135deg, rgba(3,119,159,.5), transparent 35%, rgba(95,208,239,.4) 75%, transparent); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; z-index:9;}
.portal .ptop{display:flex; align-items:center; justify-content:space-between; padding:14px 16px; border-bottom:1px solid var(--line); background:#fafcfd;}
.portal .dots{display:flex; gap:6px;} .portal .dots i{width:9px; height:9px; border-radius:50%; background:#e2e6ea; display:block;}
.portal .pcmd{color:var(--soft); background:#fff; border:1px solid var(--line); padding:5px 11px; border-radius:999px; font-size:.7rem; font-family:ui-monospace,monospace;}
.portal .pbody{padding:18px;}
.cal{padding:2px;}
.cal .chead{display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; font-size:.9rem; font-weight:800;}
.cal .chead .cn{color:var(--accent); font-family:ui-monospace,monospace; font-size:.72rem; font-weight:700;}
.cgrid{display:grid; grid-template-columns:repeat(7,1fr); gap:6px;}
.cgrid .dn{text-align:center; font-size:.62rem; color:var(--soft); font-weight:800; text-transform:uppercase;}
.cgrid .cd{aspect-ratio:1; border-radius:9px; display:grid; place-items:center; font-size:.8rem; font-weight:600; background:#f7fafb; color:var(--muted); position:relative;}
.cgrid .cd.pay{color:#fff; animation:payPop .5s var(--ease) both;}
.cgrid .cd.pay.cobro{background:linear-gradient(135deg,var(--accent-2),var(--accent-3));}
.cgrid .cd.pay.pago{background:linear-gradient(135deg,var(--accent),var(--deep)); box-shadow:0 8px 20px -6px rgba(3,119,159,.6);}
.cgrid .cd.d1{animation-delay:.3s;} .cgrid .cd.d2{animation-delay:.6s;} .cgrid .cd.d3{animation-delay:.9s;} .cgrid .cd.d4{animation-delay:1.2s;} .cgrid .cd.d5{animation-delay:1.5s;}
.cgrid .cd.today{border:2px solid var(--accent); color:var(--accent); background:#fff;}
@keyframes payPop{0%{transform:scale(.4);opacity:0;}60%{transform:scale(1.12);}100%{transform:scale(1);opacity:1;}}
.cal-legend{display:flex; gap:16px; margin-top:24px; flex-wrap:wrap;}
.cal-legend .lg{display:flex; align-items:center; gap:7px; font-size:.8rem; color:var(--muted); font-weight:600;}
.cal-legend .lg .sw{width:13px; height:13px; border-radius:4px;}
.portal .fp{position:absolute; z-index:10; left:-22px; bottom:-16px; border-radius:14px; border:1px solid var(--line); background:rgba(255,255,255,.96); backdrop-filter:blur(18px); box-shadow:0 20px 50px -18px rgba(3,64,90,.4); padding:12px 14px;}
.portal .fp .fl{color:var(--soft); font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.4px; margin-bottom:6px;}
.portal .fp .fr{display:flex; align-items:center; gap:8px; font-size:.78rem; font-weight:700;}
.portal .fp .fi{width:22px; height:22px; border-radius:7px; display:grid; place-items:center; font-size:.7rem; background:#e6f4f9; color:var(--accent);}
@media(max-width:820px){.cal-grid2{grid-template-columns:1fr; gap:40px;} .portal{transform:none;} .cal-txt{max-width:none; text-align:center; margin:0 auto 6px;}}

/* --- iPhone device mockup (estilo Novedad 04: notif viva) --- */
.iph-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;}
.iph-txt h2{font-size:clamp(1.8rem,3.6vw,2.5rem); font-weight:900; letter-spacing:-.03em; line-height:1.05;}
.iph-txt p{color:var(--muted); font-size:1.08rem; margin-top:16px;}
.iph-feats{display:flex; flex-direction:column; gap:14px; margin-top:24px;}
.iph-feats .if{display:flex; gap:13px; align-items:flex-start; font-size:.98rem; color:var(--muted);}
.iph-feats .if .fa-duotone{color:var(--accent); font-size:1.15rem; margin-top:2px;}
.iph-feats .if b{color:var(--ink); font-weight:700;}
.iph-stage{display:grid; place-items:center; padding:10px 0;}
.iphone{width:262px; height:534px; border-radius:44px; background:#0a0e14; padding:12px; box-shadow:var(--shadow); position:relative; border:1px solid #1d2733;}
.iphone .notch{position:absolute; top:12px; left:50%; transform:translateX(-50%); width:112px; height:26px; background:#0a0e14; border-radius:0 0 16px 16px; z-index:5;}
.iphone .scr{width:100%; height:100%; border-radius:33px; background:linear-gradient(180deg,#f2fafc,#fff); overflow:hidden; position:relative;}
.iphone .sbar{display:flex; justify-content:space-between; padding:16px 22px 8px; font-size:.66rem; font-weight:700; color:var(--ink);}
.iphone .app-h{padding:8px 18px 12px; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--line);}
.iphone .app-h img{height:18px;}
.iphone .app-h .mc{font-size:.72rem; color:var(--soft); font-weight:700; margin-left:auto;}
.iphone .app-b{padding:14px;}
.iphone .pcard{border:1px solid var(--line); border-radius:16px; overflow:hidden; margin-bottom:12px;}
.iphone .pcard img{width:100%; height:96px; object-fit:cover; display:block;}
.iphone .pcard .pc-b{padding:10px 12px;}
.iphone .pcard .pc-b .t{font-size:.78rem; font-weight:700;}
.iphone .pcard .pc-b .s{font-size:.66rem; color:var(--soft); display:flex; justify-content:space-between; margin-top:3px;}
.iphone .prow{display:flex; align-items:center; gap:9px; padding:9px 11px; border:1px solid var(--line); border-radius:12px; margin-bottom:8px;}
.iphone .prow .pi{width:26px; height:26px; border-radius:8px; display:grid; place-items:center; font-size:.68rem; background:#e4f7ef; color:var(--ok); flex-shrink:0;}
.iphone .prow .pi.ac{background:#e6f4f9; color:var(--accent);}
.iphone .prow .pt{font-size:.72rem; font-weight:600;} .iphone .prow .pt span{display:block; color:var(--soft); font-size:.62rem; font-weight:500;}
.iph-notif{position:absolute; top:70px; left:14px; right:14px; background:rgba(255,255,255,.96); backdrop-filter:blur(14px); border:1px solid var(--line); border-radius:16px; padding:11px 13px; display:flex; gap:10px; align-items:center; box-shadow:0 16px 40px -14px rgba(3,64,90,.4); z-index:6; animation:notif 5s ease-in-out infinite;}
@keyframes notif{0%,100%{opacity:0; transform:translateY(-16px);}10%,40%{opacity:1; transform:translateY(0);}50%{opacity:0; transform:translateY(-16px);}}
.iph-notif .ni{width:30px; height:30px; border-radius:9px; background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; display:grid; place-items:center; font-size:.8rem; flex-shrink:0;}
.iph-notif .nt{font-size:.72rem; font-weight:700;} .iph-notif .nt span{display:block; color:var(--soft); font-size:.62rem; font-weight:500;}
@media(max-width:820px){.iph-grid{grid-template-columns:1fr; gap:36px;} .iph-stage{order:-1;}}

img,picture,video,svg{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none;-webkit-touch-callout:none}
img{-webkit-user-select:none;-ms-user-select:none;user-select:none}
.va-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:760px;margin:0 auto;}
@media(max-width:640px){.va-grid{grid-template-columns:1fr;}}
.va-card{position:relative;}
.va-tag{position:absolute;top:16px;right:16px;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.4px;background:var(--ok);color:#fff;padding:3px 10px;border-radius:999px;}
.va-detail{max-width:760px;margin:18px auto 0;font-size:.88rem;color:var(--muted);text-align:center;line-height:1.6;background:#f6fafb;border:1px solid var(--line);border-radius:12px;padding:14px 18px;}
<!-- ==================== EJEMPLO DE AHORRO + BROCHURE ==================== -->
<section>
  <div class="wrap">
    <div class="sec-head">
      <span class="eyebrow">Ejemplo real</span>
      <h2 class="sh">Cuánto ahorras con Prorenta</h2>
      <p class="sub">Comparado con la comisión de mercado del 8%.</p>
    </div>
    <div class="ej-grid">
      <div class="ej-card" id="ejLC">
        <span class="tag">Residencial · Las Condes</span>
        <h3>Depto en Las Condes · 34 UF · <span data-ej="rent">$1.388.526</span>/mes</h3>
        <div class="subej">Tramo T3 (30–60 UF) — comisión de administración · UF <span class="ejUF">$40.839</span></div>
        <div class="ej-rows">
          <div class="ej-line mkt"><span class="lbl">Mercado · 8% (2,72 UF)</span><span class="amt" data-ej="mkt">$111.082/mes</span></div>
          <div class="ej-line pro"><span class="lbl">Prorenta · T3 · 6% (2,04 UF)</span><span class="amt" data-ej="pro">$83.312/mes</span></div>
        </div>
        <div class="ej-save">Ahorras <b data-ej="save">$27.770</b> cada mes<span class="ej-year">y <b data-ej="saveYr">$333.240</b> al año</span></div>
      </div>
      <div class="ej-card" id="ejGP">
        <span class="tag">Comercial · Galpón</span>
        <h3>Galpón · 120 UF · <span data-ej="rent">$4.900.680</span>/mes</h3>
        <div class="subej">Tramo T5 (100–150 UF) — comisión de administración · UF <span class="ejUF">$40.839</span></div>
        <div class="ej-rows">
          <div class="ej-line mkt"><span class="lbl">Mercado · 8% (9,6 UF)</span><span class="amt" data-ej="mkt">$392.054/mes</span></div>
          <div class="ej-line pro"><span class="lbl">Prorenta · T5 · 3,5% (4,2 UF)</span><span class="amt" data-ej="pro">$171.524/mes</span></div>
        </div>
        <div class="ej-save">Ahorras <b data-ej="save">$220.530</b> cada mes<span class="ej-year">y <b data-ej="saveYr">$2.646.360</b> al año</span></div>
      </div>
    </div>
    <p class="vol-note" style="max-width:760px;margin:16px auto 0;">Aplica un piso mínimo por tramo (T3: 2,10 UF); si la comisión calculada queda bajo el piso, se cobra el piso. Comparación contra la comisión de mercado del 8%, sin IVA. Montos calculados sobre la UF vigente.</p>
    <!-- BROCHURE OCULTO (2026-07-21, Kevin): no existe PDF/URL real del brochure. Reactivar este bloque cuando Daniel entregue el brochure y apuntar el href al archivo/URL correcto.
    <!--
    <div class="broc">
      <div class="txt">
        <h3><i class="fa-duotone fa-file-pdf"></i> ¿Quieres todo el detalle?</h3>
        <p>Descarga el brochure completo con planes, servicios y condiciones.</p>
      </div>
      <a class="btn" href="../contacto/index.php" rel="nofollow">Solicitar Brochure Completo</a>
    </div>
    -->
  </div>
</section>

<script>
(function(){
  var UF=40839;
  var EJ=[{sel:'#ejLC',uf:34,rate:6},{sel:'#ejGP',uf:120,rate:3.5}];
  var clp=function(n){return '$'+Math.round(n).toLocaleString('es-CL');};
  function render(){
    document.querySelectorAll('.ejUF').forEach(function(e){e.textContent='$'+UF.toLocaleString('es-CL');});
    EJ.forEach(function(x){
      var c=document.querySelector(x.sel); if(!c)return;
      var rent=Math.round(x.uf*UF), mkt=Math.round(x.uf*0.08*UF), pro=Math.round(x.uf*(x.rate/100)*UF), save=mkt-pro;
      var q=function(k){return c.querySelector('[data-ej='+k+']');};
      if(q('rent'))q('rent').textContent=clp(rent);
      if(q('mkt'))q('mkt').textContent=clp(mkt)+'/mes';
      if(q('pro'))q('pro').textContent=clp(pro)+'/mes';
      if(q('save'))q('save').textContent=clp(save);
      if(q('saveYr'))q('saveYr').textContent=clp(save*12);
    });
  }
  render();
  fetch('https://mindicador.cl/api/uf').then(function(r){return r.json();}).then(function(d){var v=d&&d.serie&&d.serie[0]&&d.serie[0].valor; if(v&&v>20000&&v<100000){UF=Math.round(v); render();}}).catch(function(){});
})();
</script>
<!-- ==================== CTA FINAL ==================== -->
<section id="contacto">
  <div class="wrap">
    <div class="cta-final">
      <h2>¿Listo para dejar tu propiedad en buenas manos?</h2>
      <p>Escríbenos por WhatsApp — 15 min, sin compromiso.</p>
      <a class="btn pri" href="https://wa.me/56944116680?text=Hola%2C%20quiero%20que%20Prorenta%20administre%20mi%20propiedad." target="_blank" rel="noopener">Escríbenos por WhatsApp</a>
    </div>
  </div>
</section>

<!-- ==================== FOOTER NF3 + NF1 ==================== -->
<?php require $_SERVER["DOCUMENT_ROOT"] . "/includes/footer.php"; ?>

<script>
function tog(btn){
  document.querySelector('.mpanel').classList.toggle('open');
}
// cerrar el panel móvil al tocar un link
document.querySelectorAll('.mpanel a').forEach(a=>a.addEventListener('click',()=>{
  document.querySelector('.mpanel').classList.remove('open');
}));

/* ===== Sección de Videos: click-to-play (no cargar 9 iframes de golpe) ===== */
const videos = [
  {id:"uO8-i873idI", t:"Gracias Prorenta!"},
  {id:"SCJeH5bsgD8", t:"¿Maximizar ganancias o dar un hogar?"},
  {id:"Czd9KCQEKhY", t:"Qué es Prorenta en 90 segundos"},
  {id:"i8fitYT147I", t:"El héroe del termo eléctrico"},
  {id:"YOkcKbNq2Sg", t:"¿No puedes asistir a la asamblea de tu edificio?"},
  {id:"0_TvclIi9xQ", t:"¿Rentabilidad? por Brandon Turner"},
  {id:"xhbzptEBTsw", t:"Apalancamiento en Bienes Raíces"},
  {id:"Dny5DOpZ_Io", t:"Ley de Pareto, ¿qué es?"},
  {id:"dSLmzoEGaaA", t:"Arrienda rápido y sin errores!"},
];
const vg = document.getElementById('videosGrid');
if(vg){
  vg.innerHTML = videos.map(v=>`
    <div class="vcard" data-yt="${v.id}" onclick="openVideo('${v.id}', this)">
      <div class="vthumb">
        <img src="https://img.youtube.com/vi/${v.id}/hqdefault.jpg" alt="${v.t}" loading="lazy" onerror="this.style.display='none'">
        <div class="vplay"><span><i class="fa-solid fa-play"></i></span></div>
      </div>
      <div class="vmeta"><h4>${v.t}</h4><div class="vtag"><i class="fa-brands fa-youtube"></i> Ver en YouTube</div></div>
    </div>`).join('');
}
// abre el video en un modal lightbox (grande, tipo cine)
function openVideo(id, el){
  const modal = document.getElementById('vModal');
  const frame = document.getElementById('vModalFrame');
  const title = document.getElementById('vModalTitle');
  frame.innerHTML = `<iframe src="https://www.youtube.com/embed/${id}?autoplay=1&rel=0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>`;
  if(title) title.textContent = el ? (el.querySelector('h4')?.textContent || '') : '';
  modal.classList.add('open');
  document.body.style.overflow = 'hidden';
}
function closeVideo(){
  const modal = document.getElementById('vModal');
  document.getElementById('vModalFrame').innerHTML = ''; // detiene la reproducción
  modal.classList.remove('open');
  document.body.style.overflow = '';
}
// cerrar con clic fuera del video o con Escape
document.addEventListener('click', e=>{ if(e.target.id==='vModal') closeVideo(); });
document.addEventListener('keydown', e=>{ if(e.key==='Escape') closeVideo(); });
// el video de portada (Quiénes Somos) también abre el modal
(function(){
  const qs = document.querySelector('.qs-video[data-yt]');
  if(qs){ qs.onclick = ()=>openVideo(qs.dataset.yt, null); }
})();

/* ===== Bot 7x24: consola que escribe sola ===== */
(function(){
  const term = document.getElementById('botTerm');
  if(!term) return;
  const lines = [
    {p:"$ ", t:"prorenta monitor --all", c:"pr"},
    {p:"", t:"→ Revisando 1.240 propiedades…", c:"ac"},
    {p:"✓ ", t:"Luz · al día", c:"ok"},
    {p:"✓ ", t:"Agua · al día", c:"ok"},
    {p:"✓ ", t:"Gastos comunes · al día", c:"ok"},
    {p:"✓ ", t:"Contribuciones · al día", c:"ok"},
    {p:"✓ ", t:"Arriendos cobrados · 98,4%", c:"ok"},
    {p:"", t:"Todo operativo. Próxima revisión en 60s.", c:"ac"},
  ];
  let li=0, ci=0, html="";
  function tick(){
    if(li>=lines.length){ setTimeout(()=>{term.innerHTML="";html="";li=0;ci=0;tick();}, 4000); return; }
    const ln=lines[li];
    if(ci===0){ html += `<span class="${ln.c}">${ln.p}</span>`; }
    if(ci < ln.t.length){
      html += ln.t[ci]==='<'?'&lt;':ln.t[ci];
      term.innerHTML = html + '<span class="cursor"></span>';
      ci++;
      setTimeout(tick, 24);
    } else {
      html += "\n"; li++; ci=0;
      setTimeout(tick, 340);
    }
  }
  const io = new IntersectionObserver((ents)=>{
    ents.forEach(e=>{ if(e.isIntersecting){ tick(); io.disconnect(); } });
  }, {threshold:.3});
  io.observe(term);
})();

/* ===== Escalera de tasas interactiva (sección Precios) ===== */
(function(){
  const range = document.getElementById('ufRange');
  if(!range) return;
  const TR = [
    {t:'T1', lbl:'0 – 15 UF',   min:0,   rate:8,   piso:0.60, desc:'Deptos y propiedades estándar'},
    {t:'T2', lbl:'15 – 30 UF',  min:15,  rate:7,   piso:1.20, desc:'Deptos premium y casas medianas'},
    {t:'T3', lbl:'30 – 60 UF',  min:30,  rate:6,   piso:2.10, desc:'Casas grandes, oficinas, locales'},
    {t:'T4', lbl:'60 – 100 UF', min:60,  rate:4,   piso:3.60, desc:'Galpones, bodegas, locales grandes'},
    {t:'T5', lbl:'100 – 150 UF',min:100, rate:3.5, piso:4.00, desc:'Galpones industriales, activos grandes'},
    {t:'T6', lbl:'150+ UF',     min:150, rate:3,   piso:4.50, desc:'Bodegas industriales, activos premium'}
  ];
  const steps = [...document.querySelectorAll('#stair .step')];
  let UF_CLP = 40839;          // valor de referencia; se intenta actualizar con la UF del día
  let cur = 'uf';              // 'uf' | 'clp'
  const fmtUF  = n => n.toFixed(2).replace('.', ',') + ' UF';
  const fmtCLP = n => '$' + Math.round(n).toLocaleString('es-CL');
  const money  = n => cur === 'uf' ? fmtUF(n) : fmtCLP(n * UF_CLP);
  const pctTxt = r => (r % 1 ? String(r).replace('.', ',') : String(r));
  const SCALE = [1, 50, 100, 150, 200];
  function drawScale(){
    const spans = document.querySelectorAll('.ufscale span');
    spans.forEach((s, k) => {
      if(cur === 'uf'){ s.textContent = k === 0 ? '1 UF' : (k === 4 ? '200 UF' : SCALE[k]); }
      else {
        const clp = SCALE[k] * UF_CLP;
        s.textContent = clp >= 1e6 ? '$' + (clp / 1e6).toFixed(1).replace('.', ',') + ' M'
                                   : '$' + Math.round(clp / 1000) + ' mil';
      }
    });
  }
  let curUf = 22;              // valor vigente del arriendo, siempre en UF (puede tener decimales)
  const amt = document.getElementById('ciAmt'), amtPre = document.getElementById('ciPre');
  const ufTxt = v => (v % 1 ? v.toFixed(2).replace(/0$/,'').replace('.', ',') : String(v)) + ' UF';
  function update(v){
    curUf = v;
    let i = TR.length - 1;
    for(let k = 0; k < TR.length; k++){ if(v >= TR[k].min) i = k; }
    const tr = TR[i];
    steps.forEach((s, k) => s.classList.toggle('on', k === i));
    document.getElementById('tUf').textContent = cur === 'uf' ? ufTxt(v) : fmtCLP(v * UF_CLP);
    const pct = document.getElementById('tPct');
    pct.innerHTML = pctTxt(tr.rate) + '<small>%</small>';
    pct.classList.remove('bump'); void pct.offsetWidth; pct.classList.add('bump');
    document.getElementById('tTag').textContent = tr.t + ' · ' + tr.lbl;
    document.getElementById('tDesc').textContent = tr.desc;
    document.getElementById('tPiso').textContent = money(tr.piso);
    document.getElementById('tCom').textContent = money(Math.max(v * tr.rate / 100, tr.piso)) + ' / mes';
  }
  function fillAmt(){  // refleja curUf en el recuadro, en la moneda activa
    amt.value = cur === 'uf'
      ? (curUf % 1 ? curUf.toFixed(2).replace(/0$/,'').replace('.', ',') : String(curUf))
      : Math.round(curUf * UF_CLP).toLocaleString('es-CL');
  }
  function setFromUf(uf, src){
    uf = Math.max(0.1, Math.min(999, uf));
    range.value = Math.max(1, Math.min(200, Math.round(uf)));
    update(uf);
    if(src !== 'input') fillAmt();
  }
  range.addEventListener('input', () => setFromUf(+range.value, 'range'));
  const MID = [8, 22, 45, 80, 125, 170];
  steps.forEach((s, k) => s.addEventListener('click', () => setFromUf(MID[k], 'step')));
  // recuadro calculadora: acepta "280.000", "280000" o "10,3" según moneda activa
  amt.addEventListener('input', () => {
    const raw = amt.value.trim().replace(/\$/g,'').replace(/\./g, '').replace(',', '.');
    const n = parseFloat(raw);
    if(!isFinite(n) || n <= 0) return;
    setFromUf(cur === 'uf' ? n : n / UF_CLP, 'input');
  });
  amt.addEventListener('blur', fillAmt);
  // switch de moneda
  const bUf = document.getElementById('csUf'), bClp = document.getElementById('csClp'), ref = document.getElementById('csRef');
  function setCur(c){
    cur = c;
    bUf.classList.toggle('on', c === 'uf');
    bClp.classList.toggle('on', c === 'clp');
    ref.hidden = (c === 'uf');
    ref.textContent = '1 UF = ' + fmtCLP(UF_CLP);
    amtPre.textContent = c === 'uf' ? 'UF' : '$';
    amt.placeholder = c === 'uf' ? 'ej: 10,3' : 'ej: 280.000';
    drawScale(); update(curUf); fillAmt();
  }
  bUf.addEventListener('click', () => setCur('uf'));
  bClp.addEventListener('click', () => setCur('clp'));
  // UF del día (mejor esfuerzo; si falla, queda el valor de referencia)
  fetch('https://mindicador.cl/api/uf').then(r => r.json()).then(d => {
    const v = d && d.serie && d.serie[0] && d.serie[0].valor;
    if(v && v > 20000 && v < 100000){ UF_CLP = Math.round(v); if(cur === 'clp'){ setCur('clp'); } }
  }).catch(() => {});
  setCur('clp');
  setFromUf(680000 / UF_CLP, 'init');
})();

/* ===== Panel de Transparencia: categorías + filtro + contadores ===== */
(function(){
  const list = document.getElementById('tList');
  if(!list) return;
  const items = [...list.querySelectorAll('.titem')];
  const railBtns = [...document.querySelectorAll('#tRail button')];
  const filBtns = [...document.querySelectorAll('#tFil button')];
  let cat = 'gar', fil = 'all';
  function apply(){
    let shown = 0;
    items.forEach(it => {
      const ok = it.dataset.cat === cat && (fil === 'all' || it.classList.contains(fil));
      it.hidden = !ok;
      if(ok){ it.style.animation = 'none'; void it.offsetWidth; it.style.animation = ''; it.style.animationDelay = (shown * 26) + 'ms'; shown++; }
    });
    const catName = railBtns.find(b => b.dataset.cat === cat).textContent.trim().replace(/\d+$/,'').trim();
    document.getElementById('tCount').textContent = shown + (shown === 1 ? ' servicio' : ' servicios') + ' en ' + catName;
  }
  railBtns.forEach(b => b.addEventListener('click', () => { cat = b.dataset.cat; railBtns.forEach(x => x.classList.toggle('on', x === b)); apply(); }));
  filBtns.forEach(b => b.addEventListener('click', () => { fil = b.dataset.f; filBtns.forEach(x => x.classList.toggle('on', x === b)); apply(); }));
  apply();
  // contadores de la franja
  const strip = document.getElementById('tStrip');
  let counted = false;
  function count(){
    if(counted) return; counted = true;
    strip.querySelectorAll('.ts-num').forEach(el => {
      const to = +el.dataset.to, t0 = performance.now();
      (function tick(t){ const p = Math.min(1, (t - t0) / 1100); el.textContent = Math.round(to * (1 - Math.pow(1 - p, 3))); if(p < 1) requestAnimationFrame(tick); })(t0);
      setTimeout(() => { el.textContent = to; }, 1400);   // garantía: valor final aunque rAF esté congelado
    });
    window.removeEventListener('scroll', chk);
  }
  function chk(){ const r = strip.getBoundingClientRect(); if(r.top < innerHeight * .85 && r.bottom > 0) count(); }
  if(window.matchMedia('(prefers-reduced-motion: reduce)').matches){ strip.querySelectorAll('.ts-num').forEach(el => el.textContent = el.dataset.to); }
  else { window.addEventListener('scroll', chk, {passive:true}); chk(); }
})();

/* ===== Timeline "Equipo interno": línea que se dibuja + pasos en secuencia ===== */
(function(){
  const flow = document.getElementById('cflow');
  if(!flow || !('IntersectionObserver' in window)) return;
  const steps = [...flow.querySelectorAll('.flow-step')];
  const reduced = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
  if(reduced){ steps.forEach(s => s.classList.add('lit')); return; }
  flow.classList.add('prep');
  let done = false;
  function fire(){
    if(done) return; done = true;
    flow.classList.add('go');
    steps.forEach((s, k) => setTimeout(() => s.classList.add('lit'), 200 + k * 290));
    window.removeEventListener('scroll', check);
  }
  function check(){
    const r = flow.getBoundingClientRect();
    if(r.top < window.innerHeight * .8 && r.bottom > 0) fire();
  }
  const io = new IntersectionObserver((ents) => { if(ents.some(e => e.isIntersecting)) fire(); }, {threshold:.3});
  io.observe(flow);
  window.addEventListener('scroll', check, {passive:true});
  check();
})();

/* ===== Calugas "Incluido en todos los planes": reveal escalonado ===== */
(function(){
  const cards = document.querySelectorAll('.incl .icard');
  if(!cards.length || !('IntersectionObserver' in window)) return;
  if(window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
  cards.forEach(c=>c.classList.add('pre'));
  const io = new IntersectionObserver((ents)=>{
    ents.forEach(e=>{
      if(!e.isIntersecting) return;
      const el = e.target;
      const i = [...cards].indexOf(el);
      el.style.transitionDelay = (i%4)*80 + 'ms';
      el.classList.add('in');
      el.addEventListener('transitionend', function h(){ el.style.transitionDelay=''; el.removeEventListener('transitionend', h); });
      io.unobserve(el);
    });
  }, {threshold:.2, rootMargin:'0px 0px -40px 0px'});
  cards.forEach(c=>io.observe(c));
})();

/* ===== Portal de clientes: reveal escalonado (mismo patrón que calugas) ===== */
(function(){
  const cards = document.querySelectorAll('.mp-grid .mpcard');
  if(!cards.length || !('IntersectionObserver' in window)) return;
  if(window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
  cards.forEach(c=>c.classList.add('pre'));
  const io = new IntersectionObserver((ents)=>{
    ents.forEach(e=>{
      if(!e.isIntersecting) return;
      const el = e.target;
      const i = [...cards].indexOf(el);
      el.style.transitionDelay = (i%3)*80 + 'ms';
      el.classList.add('in');
      el.addEventListener('transitionend', function h(){ el.style.transitionDelay=''; el.removeEventListener('transitionend', h); });
      io.unobserve(el);
    });
  }, {threshold:.2, rootMargin:'0px 0px -40px 0px'});
  cards.forEach(c=>io.observe(c));
})();

/* ===== Simulador KPIs del portal: count-up + barras + feed rotativo =====
   Usa setInterval (no rAF) + watchdog + fallback por scroll, por la lección
   conocida de IO/rAF congelados con la ventana ocluida. */
(function(){
  const panel = document.getElementById('kpiPanel');
  if(!panel) return;
  const $ = id => document.getElementById(id);
  const fmtCLP = n => '$' + Math.round(n).toLocaleString('es-CL');
  const reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
  let started = false;

  function countTo(el, to, dur, fmt){
    if(reduce){ el.textContent = fmt(to); return; }
    const t0 = Date.now();
    const iv = setInterval(()=>{
      const p = Math.min(1, (Date.now()-t0)/dur);
      const e = 1 - Math.pow(1-p, 3);
      el.textContent = fmt(to*e);
      if(p >= 1) clearInterval(iv);
    }, 40);
  }

  function start(){
    if(started) return; started = true;
    panel.classList.add('go');
    countTo($('kvProps'), 12, 1200, v=>Math.round(v));
    countTo($('kvIcp'), 92, 1400, v=>Math.round(v));
    countTo($('kvRenta'), 8640000, 1600, fmtCLP);
    countTo($('kvVac'), 2.1, 1400, v=>v.toFixed(1).replace('.',','));
    // watchdog: valores finales garantizados aunque los intervals se throttleen
    setTimeout(()=>{
      $('kvProps').textContent='12'; $('kvIcp').textContent='92';
      $('kvRenta').textContent=fmtCLP(8640000); $('kvVac').textContent='2,1';
    }, 2800);
  }

  if('IntersectionObserver' in window){
    const io = new IntersectionObserver(es=>{ es.forEach(e=>{ if(e.isIntersecting){ start(); io.disconnect(); } }); }, {threshold:.25});
    io.observe(panel);
  }
  const chk = ()=>{ const r = panel.getBoundingClientRect(); if(r.top < innerHeight && r.bottom > 0) start(); };
  window.addEventListener('scroll', chk, {passive:true});
  chk();

  // Feed de actividad rotativo + micro-simulación de renta pagada (96% → 98%)
  if(!reduce){
    const feed = $('kpiFeed'), fi = $('kpiFi'), fp = $('kpiFp');
    const msgs = [
      ['✓','ok','Arriendo recibido · Ñuñoa 2D/1B'],
      ['✓','ok','Liquidación publicada · PDF listo'],
      ['⚡','ac','Pago de luz verificado · Providencia'],
      ['✓','ok','Gastos comunes al día · San Miguel'],
      ['⌂','ac','Visita agendada · La Florida 3D/2B'],
      ['✓','ok','Contrato renovado · 12 meses']
    ];
    let mi = 0, pag = 96;
    setInterval(()=>{
      mi = (mi+1) % msgs.length;
      fi.textContent = msgs[mi][0];
      fi.className = 'fi ' + msgs[mi][1];
      feed.textContent = msgs[mi][2];
      fp.classList.remove('tick'); void fp.offsetWidth; fp.classList.add('tick');
      if(started && msgs[mi][2].indexOf('Arriendo') === 0 && pag < 98){
        pag++;
        $('kvPag').textContent = pag;
        $('kvPagBar').style.setProperty('--w', pag + '%');
        countTo($('kvRenta'), 8640000 + (pag-96)*90000, 900, fmtCLP);
      }
    }, 3600);
  }
})();

/* ===== Calendario de cobros: cobros del mes + pago día 10 (con pops) ===== */
(function(){
  const grid = document.getElementById('calGrid');
  if(!grid) return;
  const meses = ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"];
  const now = new Date();
  const y=now.getFullYear(), m=now.getMonth();
  const mesEl = document.getElementById('calMes');
  if(mesEl) mesEl.textContent = meses[m] + " " + y;
  const first = new Date(y,m,1);
  const start = (first.getDay()+6)%7;           // lunes=0
  const days = new Date(y,m+1,0).getDate();
  const hoy = now.getDate();
  // 4 días de cobro repartidos en el mes + el día 10 como pago al propietario
  const cobros = [5, 16, 22, 27];
  let html = ["L","M","M","J","V","S","D"].map(d=>`<div class="dn">${d}</div>`).join('');
  for(let i=0;i<start;i++) html += `<div class="cd" style="background:transparent"></div>`;
  let delayIdx = 1;
  for(let d=1; d<=days; d++){
    let cls="cd", label=d;
    if(d===10){ cls=`cd pay pago d${delayIdx++}`; }
    else if(cobros.includes(d)){ cls=`cd pay cobro d${delayIdx++}`; }
    else if(d===hoy){ cls="cd today"; }
    html += `<div class="${cls}">${label}</div>`;
  }
  grid.innerHTML = html;
})();
</script>
<!-- MODAL LIGHTBOX DE VIDEO -->
<div class="vmodal" id="vModal">
  <div class="vbox">
    <button class="vclose" onclick="closeVideo()" aria-label="Cerrar">✕</button>
    <div class="vframe" id="vModalFrame"></div>
    <div class="vtitle" id="vModalTitle"></div>
  </div>
</div>

<!-- ============ BURBUJA WHATSAPP FLOTANTE (global v1 · 2026-07-16) ============ -->
<a href="https://wa.me/56944920487?text=Hola%2C%20necesito%20ayuda%20con%20mi%20propiedad" class="wa-fab" target="_blank" rel="noopener" aria-label="Escríbenos por WhatsApp" title="Escríbenos por WhatsApp">
  <svg viewBox="0 0 24 24" width="34" height="34" fill="#fff" aria-hidden="true"><path d="M12.04 2C6.58 2 2.13 6.45 2.13 11.91c0 2.1.55 4.15 1.6 5.96L2 22l4.25-1.11a9.9 9.9 0 0 0 4.79 1.22h.01c5.46 0 9.91-4.45 9.91-9.91 0-2.65-1.03-5.14-2.9-7.01A9.82 9.82 0 0 0 12.04 2Zm0 18.02h-.01a8.2 8.2 0 0 1-4.18-1.15l-.3-.18-2.52.66.67-2.46-.2-.31a8.16 8.16 0 0 1-1.26-4.37c0-4.54 3.7-8.23 8.24-8.23 2.2 0 4.27.86 5.82 2.42a8.18 8.18 0 0 1 2.41 5.82c0 4.54-3.7 8.23-8.22 8.23Zm4.52-6.16c-.25-.12-1.47-.72-1.69-.81-.23-.08-.39-.12-.56.12-.16.25-.64.81-.79.97-.14.17-.29.19-.54.06-.25-.12-1.05-.39-1.99-1.23-.74-.66-1.23-1.47-1.38-1.72-.14-.25-.02-.38.11-.5.11-.11.25-.29.37-.43.12-.14.16-.25.25-.41.08-.17.04-.31-.02-.43-.06-.12-.56-1.34-.76-1.84-.2-.48-.4-.42-.56-.42l-.48-.01c-.16 0-.43.06-.66.31-.23.25-.86.85-.86 2.07 0 1.22.89 2.4 1.01 2.56.12.17 1.75 2.67 4.23 3.74.59.26 1.05.41 1.41.52.59.19 1.13.16 1.56.1.48-.07 1.47-.6 1.68-1.18.21-.58.21-1.07.14-1.18-.06-.11-.22-.17-.47-.29Z"/></svg>
</a>
.wa-fab{position:fixed;bottom:24px;right:24px;width:60px;height:60px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(0,0,0,.22);z-index:900;transition:transform .25s ease,box-shadow .25s ease;animation:wa-pulse 2.8s ease-out infinite;-webkit-tap-highlight-color:transparent;}
.wa-fab:hover{transform:scale(1.08);box-shadow:0 10px 28px rgba(3,119,159,.45),0 0 0 6px rgba(3,119,159,.16);}
.wa-fab svg{width:34px;height:34px;display:block;}
@keyframes wa-pulse{0%{box-shadow:0 6px 20px rgba(0,0,0,.22),0 0 0 0 rgba(37,211,102,.5);}70%{box-shadow:0 6px 20px rgba(0,0,0,.22),0 0 0 16px rgba(37,211,102,0);}100%{box-shadow:0 6px 20px rgba(0,0,0,.22),0 0 0 0 rgba(37,211,102,0);}}
@media(max-width:820px){.wa-fab{width:56px;height:56px;bottom:18px;right:18px;}.wa-fab svg{width:31px;height:31px;}}
@media (prefers-reduced-motion:reduce){.wa-fab{animation:none;}}
.copyable{cursor:pointer;}
.ft .contact-item .ic.copyable{transition:background .2s,color .2s,transform .2s;}
.ft .contact-item .ic.copyable:hover{background:var(--accent);color:#fff;transform:translateY(-1px);}
.copy-inline{margin-left:7px;opacity:.4;cursor:pointer;transition:opacity .2s,transform .2s,color .2s;font-size:.85em;}
.cbtn:hover .copy-inline{opacity:.75;}
.copy-inline:hover{opacity:1;transform:scale(1.18);}
.copyable.copied,.copy-inline.copied{color:#25D366 !important;opacity:1 !important;}
.copy-toast{position:fixed;transform:translate(-50%,-100%) translateY(6px);background:#0f2b36;color:#fff;font-size:.78rem;font-weight:700;padding:5px 11px;border-radius:8px;white-space:nowrap;pointer-events:none;z-index:1200;opacity:0;transition:opacity .18s,transform .18s;box-shadow:0 6px 18px rgba(0,0,0,.28);}
.copy-toast.show{opacity:1;transform:translate(-50%,-100%) translateY(0);}
