/*
 * /vivi (rehecha 2026-10-15 para los anuncios). Prefijo .vc-.
 * Plano: blanco sobre crema con borde #E3DDD4 de 2 px, sin sombras difusas,
 * sin degradados, sin desenfoques ni barras de color laterales. Colores con
 * !important por la plantilla antigua. En móvil, nada de animaciones infinitas.
 */
.vc{
  --n:#1A3151;--n2:#24406A;--cta:#B75A44;--cta-h:#9B4532;--cream:#F8F2E8;--melo:#F2CDB9;--cielo:#C9D9EA;--salvia:#B5C9AE;--arena:#EBDDBE;
  --line:#E3DDD4;--t2:#455976;--t3:#5B6F8B;
  --disp:var(--vh-disp,"Bricolage Grotesque",Arial,sans-serif);
  --serif:var(--vh-serif,"Instrument Serif","Times New Roman",serif);
  background:var(--cream);color:var(--n)!important;letter-spacing:-.02em;overflow-x:clip
}
.vc *,.vc *::before,.vc *::after{box-sizing:border-box}
.vc button,.vc input,.vc textarea{letter-spacing:inherit}
.vc p,.vc li{letter-spacing:-.02em}
.vc-wrap{max-width:1200px;margin:0 auto;padding:0 16px}
.vc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ── Textos comunes ───────────────────────────────────────────────────── */
.vc-kick{font-family:var(--disp);font-weight:600;text-transform:uppercase;letter-spacing:.08em!important;font-size:.82rem;color:var(--t2)!important;margin:0 0 14px;display:flex;align-items:center;gap:8px}
.vc-kick span{width:8px;height:8px;border-radius:50%;background:var(--cta);flex:0 0 auto}
.vc h1,.vc .vc-h2{font-family:var(--disp)!important;font-weight:700;letter-spacing:-.035em!important;color:var(--n)!important}
.vc h1{line-height:.98;font-size:clamp(2.5rem,5.6vw,4.7rem);margin:0 0 18px}
body.vs .vc h1 em,.vc h1 em{font-family:var(--serif)!important;font-style:italic;font-weight:400;color:var(--cta)!important;display:inline-block;letter-spacing:-.022em!important;transform:scale(1.08,.84);transform-origin:left 70%;padding-right:.12em}
.vc-h2{line-height:1.02;font-size:clamp(2rem,4.2vw,3.4rem);margin:0 0 16px;max-width:900px}
body.vs .vc .vc-h2 em,.vc .vc-h2 em{font-family:var(--serif)!important;font-style:italic;font-weight:400;color:var(--cta)!important;letter-spacing:-.01em}
.vc-sub{font-size:clamp(1.08rem,1.5vw,1.28rem);line-height:1.5;color:var(--t2)!important;margin:0;max-width:560px}
.vc-sub strong{color:var(--n)!important;font-weight:600}
.vc-intro{font-size:1.15rem;line-height:1.55;color:var(--t2)!important;margin:0 0 34px;max-width:640px}
.vc h3{font-family:var(--disp)!important;color:var(--n)!important}

/* ── Botones ──────────────────────────────────────────────────────────── */
.vc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:10px 18px;font:inherit;font-weight:600;font-size:.95rem;line-height:1.2;text-decoration:none!important;border:2px solid transparent;cursor:pointer;transition:background-color .2s,border-color .2s,transform .2s}
.vc-btn--pri{background:var(--cta);color:#fff!important}
.vc-btn--pri:hover,.vc-btn--pri:focus-visible{background:var(--cta-h);color:#fff!important}
.vc-btn--sec{border-color:var(--line);color:var(--n)!important;background:#fff}
.vc-btn--sec:hover{border-color:var(--n)}
.vc-btn--xl{font-family:var(--disp);font-size:1.15rem;padding:17px 30px;white-space:nowrap}
.vc-btn--xl svg{transition:transform .2s}
.vc-btn--xl:hover svg{transform:translateX(4px)}
.vc-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin:40px 0 0}
.vc-link{color:var(--n)!important;font-weight:600;text-decoration:underline!important;text-underline-offset:4px}

/* ── 1. Hero ──────────────────────────────────────────────────────────── */
.vc-hero{position:relative;padding:52px 0 88px;overflow:hidden}
.vc-hero::before,.vc-hero::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.vc-hero::before{width:420px;height:420px;background:var(--melo);left:-210px;bottom:-230px}
.vc-hero::after{width:300px;height:300px;background:var(--cielo);right:-150px;top:-140px}
.vc-hero{padding-top:118px}
.vc-hero__grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);grid-template-rows:auto 1fr;grid-template-areas:"head chat" "extra chat";column-gap:64px;align-items:start}
.vc-head{grid-area:head;padding-top:10px}
.vc-extra{grid-area:extra;margin-top:28px}
.vc-chat{grid-area:1 / 2 / 3 / 3}
/* Escritorio: Vivi apoyada en la esquina del chat, con el bocadillo a su izquierda. */
.vc-side{grid-area:1 / 2 / 2 / 3;justify-self:end;align-self:start;position:relative;z-index:2;display:flex;align-items:center;gap:4px;margin:-112px -18px 0 0;pointer-events:none}

.vc-pros{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.vc-pros li{display:flex;align-items:center;gap:10px;font-size:1.05rem;font-weight:500;color:var(--n)!important}
.vc-pros svg{width:26px;height:26px;padding:4px;border-radius:50%;background:var(--salvia);stroke-width:2.4;flex:0 0 auto}

.vc-caras{display:inline-flex;align-items:center;gap:14px;margin-top:26px;text-decoration:none!important;color:var(--n)!important;padding:8px 18px 8px 8px;border:2px solid var(--line);background:#fff;border-radius:999px;transition:border-color .2s}
.vc-caras:hover{border-color:var(--n)}
.vc-caras__fotos{display:flex}
.vc-caras__fotos picture{display:block;width:46px;height:46px;border-radius:50%;overflow:hidden;border:3px solid #fff;background:var(--cream);margin-left:-12px}
.vc-caras__fotos picture:first-child{margin-left:0}
.vc-caras__fotos img{width:100%;height:100%;object-fit:cover;display:block}
.vc-caras__t{font-size:.98rem;line-height:1.3;display:block}
.vc-caras__t b{font-weight:700}
.vc-caras__t svg{width:16px;height:16px;vertical-align:-3px;margin-left:2px}

.vc-side .vivi{--vivi-w:150px}
.vc-bubble{position:relative;background:#fff;border:2px solid var(--line);border-radius:20px;padding:11px 16px;font-size:1rem;line-height:1.4;max-width:260px;color:var(--n);transition:opacity .25s;margin-bottom:46px}
.vc-bubble::after{content:"";position:absolute;right:-9px;top:50%;width:16px;height:16px;background:#fff;border-right:2px solid var(--line);border-top:2px solid var(--line);transform:translateY(-50%) rotate(45deg)}
.vc-bubble.is-cambio{opacity:0}

/* Chat */
.vc-chat{background:#fff;border:2px solid var(--n);border-radius:30px;padding:0 22px 20px;display:flex;flex-direction:column;min-height:620px;scroll-margin-top:96px}
.vc-chat__top{display:flex;align-items:center;gap:12px;margin:0 -22px 18px;padding:16px 22px;border-bottom:2px solid var(--line);min-height:68px}
.vc-chat__top img{display:none}
.vc-chat__top p{margin:0;display:flex;flex-direction:column;line-height:1.25}
.vc-chat__top b{font-family:var(--disp);font-size:1.15rem;color:var(--n)}
.vc-chat__top span{font-size:.85rem;color:var(--t3);display:flex;align-items:center;gap:6px}
.vc-chat__top i{width:9px;height:9px;border-radius:50%;background:#5E9A58;display:inline-block}
.vc-msgs{flex:1;display:flex;flex-direction:column;gap:12px;padding-bottom:14px}
.vc-m{max-width:86%;padding:13px 17px;border-radius:22px;font-size:1.04rem;line-height:1.5;white-space:pre-line;animation:vc-in .35s cubic-bezier(.2,.7,.2,1) both}
.vc-m--vivi{background:var(--cream);border-top-left-radius:6px;color:var(--n)}
.vc-m--yo{background:var(--n);color:#fff!important;align-self:flex-end;border-top-right-radius:6px}
.vc-m--crisis{background:#FBE9E3;border:2px solid var(--cta);max-width:100%}
.vc-m--crisis .vc-tels{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.vc-m--crisis .vc-tels a{background:var(--cta);color:#fff!important;text-decoration:none;font-weight:700;padding:10px 16px;border-radius:999px}
.vc-m--crisis .vc-tels a span{font-weight:500;opacity:.9}
@keyframes vc-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.vc-chips{display:flex;flex-wrap:wrap;gap:8px}
.vc-chips button{border:2px solid var(--line);background:#fff;color:var(--n);border-radius:999px;padding:11px 17px;font:inherit;font-size:1rem;font-weight:500;cursor:pointer;transition:border-color .2s,background-color .2s,color .2s}
.vc-chips button:hover,.vc-chips button:focus-visible{border-color:var(--n);background:var(--n);color:#fff}

.vc-pensando{display:flex;gap:5px;align-items:center;padding:16px 18px}
.vc-pensando i{width:8px;height:8px;border-radius:50%;background:var(--t3);animation:vc-dot 1.1s infinite ease-in-out}
.vc-pensando i:nth-child(2){animation-delay:.15s}.vc-pensando i:nth-child(3){animation-delay:.3s}
@keyframes vc-dot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}

.vc-crit{display:flex;flex-wrap:wrap;gap:6px;font-size:.85rem}
.vc-crit span{background:var(--cielo);border-radius:999px;padding:4px 11px;color:var(--n)}

.vc-cards{display:grid;gap:12px}
.vc-card{display:grid;grid-template-columns:76px minmax(0,1fr);gap:14px;border:2px solid var(--line);border-radius:22px;padding:16px;background:#fff;animation:vc-in .45s cubic-bezier(.2,.7,.2,1) both}
.vc-card:nth-child(2){animation-delay:.12s}.vc-card:nth-child(3){animation-delay:.24s}
.vc-card img{width:76px;height:76px;border-radius:50%;object-fit:cover;background:var(--cream)}
.vc-card h3{font-size:1.15rem;font-weight:700;letter-spacing:-.02em;margin:0;line-height:1.2}
.vc-card h3 a{color:inherit!important;text-decoration:none}
.vc-card .vc-tit{font-size:.88rem;color:var(--t3)!important;margin:2px 0 0}
.vc-encaje{display:inline-block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;background:var(--salvia);color:var(--n);border-radius:999px;padding:3px 9px;margin-bottom:6px}
.vc-encaje--bueno{background:var(--melo)}
.vc-encaje--parcial{background:var(--cream)}
.vc-motivo{margin:10px 0 0;font-size:1rem;line-height:1.5;color:var(--n)!important}
.vc-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:.88rem;color:var(--t2)}
.vc-meta b{color:var(--n);font-weight:600}
.vc-prox{color:#3D6B3A!important}
.vc-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}

.vc-form{display:flex;gap:8px;align-items:flex-end;border:2px solid var(--line);border-radius:26px;padding:6px 6px 6px 18px;transition:border-color .2s;background:#fff}
.vc-form:focus-within{border-color:var(--n)}
.vc-form textarea{flex:1;border:0;outline:0;resize:none;font:inherit;font-size:1.06rem;line-height:1.45;padding:11px 0;max-height:160px;color:var(--n);background:transparent}
.vc-send{flex:0 0 auto;width:50px;height:50px;border-radius:50%;border:0;background:var(--cta);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background-color .2s}
.vc-send:hover{background:var(--cta-h)}
.vc-send:disabled{background:var(--t3);cursor:default}
.vc-legal{font-size:.82rem;line-height:1.45;color:var(--t3)!important;margin:10px 4px 0}
.vc-legal a{color:inherit!important;font-weight:600}
.vc-otra{margin:10px 4px 0;font-size:.88rem;color:var(--t3)!important}
.vc-otra button{border:0;background:none;padding:0;font:inherit;color:var(--n);font-weight:600;cursor:pointer;text-decoration:underline}
.vc-otra a{color:var(--n)!important;font-weight:600}
.vc-admin{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px;padding-top:12px;border-top:2px dashed var(--line);font-size:.82rem;color:var(--t3)}
.vc-admin select,.vc-admin button{font:inherit;font-size:.82rem;border:2px solid var(--line);border-radius:999px;padding:4px 10px;background:#fff;color:var(--n);cursor:pointer}
.vc-chat.is-llamada{border-color:var(--cta)}

/* ── Secciones ────────────────────────────────────────────────────────── */
.vc-sec{padding:96px 0}
.vc-sec--blanca{background:#fff}

/* 2. Pasos */
.vc-pasos{list-style:none;margin:36px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.vc-paso{border-radius:30px;padding:30px 30px 34px;color:var(--n)}
.vc-paso--1{background:var(--melo)}.vc-paso--2{background:var(--cielo)}.vc-paso--3{background:var(--salvia)}
.vc-paso__n{display:block;font-family:var(--disp);font-weight:700;font-size:4.6rem;line-height:.9;letter-spacing:-.05em;margin-bottom:26px}
.vc-paso h3{font-size:1.5rem;font-weight:700;letter-spacing:-.03em!important;line-height:1.1;margin:0 0 10px}
.vc-paso p{font-size:1.06rem;line-height:1.5;margin:0;color:var(--n)!important}

/* 3. Destacados */
.vc-dest{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.vc-pro{border:2px solid var(--line);border-radius:28px;overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:border-color .2s}
.vc-pro:hover{border-color:var(--n)}
.vc-pro__ph{position:relative;display:block;aspect-ratio:1/1;max-height:300px;width:100%;background:var(--cream);overflow:hidden}
.vc-pro__ph picture,.vc-pro__ph img{display:block;width:100%;height:100%}
.vc-pro__ph img{object-fit:cover;object-position:50% 25%;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.vc-pro:hover .vc-pro__ph img{transform:scale(1.04)}
.vc-pro__prox{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:7px;background:var(--salvia);color:var(--n)!important;font-weight:600;font-size:.92rem;padding:8px 13px;border-radius:999px}
.vc-pro__prox svg{width:18px;height:18px}
.vc-pro__body{padding:18px 18px 20px;display:flex;flex-direction:column;flex:1}
.vc-pro h3{font-size:1.25rem;font-weight:700;letter-spacing:-.03em!important;line-height:1.15;margin:0}
.vc-pro h3 a{color:inherit!important;text-decoration:none!important}
.vc-pro__esp{margin:4px 0 0;font-size:.98rem;color:var(--t2)!important}
.vc-pro__meta{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0}
.vc-pro__meta span{font-size:.88rem;background:var(--cream);border-radius:999px;padding:5px 11px;color:var(--n)}
.vc-pro__meta b{font-weight:700}
.vc-pro__acts{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:auto;padding-top:16px}
.vc-pro__acts .vc-btn{white-space:nowrap}

/* 4. Marino */
.vc-navy{background:var(--n)}
.vc-navy .vc-h2{color:#fff!important}
body.vs .vc .vc-navy .vc-h2 em,.vc .vc-navy .vc-h2 em{color:var(--melo)!important}
.vc-conf{list-style:none;margin:44px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px}
.vc-conf li{border-top:2px solid var(--n2);padding-top:22px}
.vc-conf svg{width:52px;height:52px;color:var(--melo);stroke-width:1.4;margin-bottom:16px}
.vc-conf h3{font-size:1.3rem;font-weight:700;color:#fff!important;letter-spacing:-.025em!important;line-height:1.15;margin:0 0 8px}
.vc-conf p{font-size:1.02rem;line-height:1.5;margin:0;color:var(--cielo)!important}

/* 5. Especialidades */
.vc-cats{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.vc-cats a{display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border:2px solid var(--line);background:#fff;border-radius:999px;color:var(--n)!important;font-weight:600;font-size:1.02rem;text-decoration:none!important;transition:border-color .2s,background-color .2s,color .2s}
.vc-cats a:hover{border-color:var(--n);background:var(--n);color:#fff!important}
.vc-cats small{font-size:.8rem;font-weight:600;color:var(--t3);background:var(--cream);border-radius:999px;padding:2px 8px}
.vc-cats a:hover small{background:var(--n2);color:#fff}

/* 6. Preguntas */
.vc-faq-wrap{max-width:900px}
.vc-faq{margin-top:28px;border-top:2px solid var(--line)}
.vc-faq details{border-bottom:2px solid var(--line)}
.vc-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 4px;font-family:var(--disp);font-weight:600;font-size:1.25rem;letter-spacing:-.025em;color:var(--n)}
.vc-faq summary::-webkit-details-marker{display:none}
.vc-faq summary::after{content:"";flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 6v12M6 12h12' stroke='%231A3151' stroke-width='2.2' stroke-linecap='round' fill='none'/%3E%3C/svg%3E") center/18px no-repeat;transition:transform .25s}
.vc-faq details[open] summary::after{transform:rotate(45deg)}
.vc-faq p{margin:0;padding:0 4px 24px;font-size:1.06rem;line-height:1.6;color:var(--t2)!important;max-width:720px}
.vc-faq a{color:var(--cta)!important;font-weight:600}

/* 7. Cierre */
.vc-fin{text-align:center;position:relative;overflow:hidden}
.vc-fin::before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:var(--melo);right:-180px;bottom:-200px}
.vc-fin__in{position:relative;display:flex;flex-direction:column;align-items:center}
.vc-fin__vivi{width:170px;height:auto;margin-bottom:8px}
.vc-fin .vc-h2{font-size:clamp(2.4rem,5.4vw,4.4rem);margin-left:auto;margin-right:auto}
.vc-fin .vc-intro{margin:0 auto}
.vc-fin .vc-ctas{justify-content:center;margin-top:30px}

/* Barra fija (móvil) */
.vc-barra{display:none}

/* Aparición al bajar (solo con JS; una vez, sin bucles) */
.vc-js .vc-rv{opacity:0;transform:translateY(22px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * 90ms)}
.vc-js .vc-rv.is-in{opacity:1;transform:none}

/* ── Tableta y móvil ──────────────────────────────────────────────────── */
@media (max-width:1100px){
  .vc-hero__grid{column-gap:36px;grid-template-columns:minmax(0,1fr) minmax(0,500px)}
  .vc-conf{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vc-dest{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:980px){
  .vc-hero{padding:26px 0 52px}
  .vc-hero::before{width:260px;height:260px;left:-160px;bottom:-140px}
  .vc-hero::after{width:180px;height:180px;right:-100px;top:-90px}
  .vc-hero__grid{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"head" "side" "chat" "extra"}
  .vc-head{padding-top:0}
  .vc-chat{grid-area:chat}
  .vc h1{font-size:clamp(2.3rem,9vw,3.4rem);margin-bottom:12px}
  .vc-side{grid-area:side;justify-self:start;margin:6px 0 -10px;flex-direction:row-reverse}
  .vc-side .vivi{--vivi-w:110px}
  .vc-bubble{margin-bottom:22px;font-size:.95rem}
  .vc-bubble::after{right:auto;left:-9px;border-right:0;border-top:0;border-left:2px solid var(--line);border-bottom:2px solid var(--line)}
  .vc-chat{min-height:0}
  .vc-extra{margin-top:26px}
  .vc-pasos{grid-template-columns:minmax(0,1fr);gap:12px}
  .vc-paso{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:18px;padding:22px 22px 24px;border-radius:24px}
  .vc-paso__n{grid-row:span 2;font-size:3.4rem;margin:0}
  .vc-dest{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin:0 -16px;padding:0 16px 8px;scrollbar-width:none}
  .vc-dest::-webkit-scrollbar{display:none}
  .vc-pro{flex:0 0 78%;max-width:340px;scroll-snap-align:start}
}
@media (max-width:860px){
  .vc-sec{padding:64px 0}
  .vc-chat{padding:0 14px 14px;border-radius:24px}
  .vc-chat__top{margin:0 -14px 14px;padding:12px 14px}
  .vc-m{max-width:94%}
  .vc-chips{gap:7px}
  .vc-chips button{padding:8px 13px;font-size:.94rem}
  .vc-card{grid-template-columns:56px minmax(0,1fr);padding:14px}
  .vc-card img{width:56px;height:56px}
  .vc-conf{grid-template-columns:minmax(0,1fr);gap:22px;margin-top:30px}
  .vc-conf li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:16px;padding-top:18px}
  .vc-conf svg{grid-row:span 2;width:40px;height:40px;margin:0}
  .vc-btn--xl{width:100%;font-size:1.04rem;padding:16px 18px}
  .vc-ctas{margin-top:30px}
  .vc-faq summary{font-size:1.1rem;padding:18px 2px}
  .vc-barra{display:block;position:fixed;left:0;right:0;bottom:0;z-index:900;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--cream);border-top:2px solid var(--line);transform:translateY(110%);transition:transform .3s cubic-bezier(.2,.7,.2,1)}
  .vc-barra.is-on{transform:none}
  .vc-barra[hidden]{display:none}
  .vc-barra .vc-btn{width:100%;font-family:var(--disp);font-size:1.08rem;padding:12px 20px}
  .vc-barra img{width:34px;height:auto;margin:-6px 0}
  /* Rendimiento en móvil: la mascota solo se mueve tras la carga (.vc-vivo, ver «Vida»). */
}
/* ── Vida (2026-10-15, Juan: «que parezca más vivo… que induzca a escribir») ──
 * Todo con transform/opacity (se pinta en la GPU, no carga el hilo principal).
 * La mascota empieza a flotar tras la carga de la página (.vc-vivo, lo pone el JS),
 * también en móvil. Plano: sin blur ni sombras difusas. */
.vc .vivi__cuerpo,.vc .vivi__sombra{animation:none}
.vc.vc-vivo .vivi__cuerpo{animation:vc-flota 3.4s ease-in-out infinite}
.vc.vc-vivo .vivi__sombra{animation:vc-sombra 3.4s ease-in-out infinite}
@keyframes vc-flota{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(calc(var(--vivi-w) * -.13)) rotate(3deg)}}
@keyframes vc-sombra{0%,100%{transform:scaleX(1);opacity:.13}50%{transform:scaleX(.7);opacity:.06}}
.vc .vivi{transition:transform .35s cubic-bezier(.3,1.5,.5,1);transform-origin:50% 70%}
.vc .vivi.is-atenta{transform:rotate(-7deg) scale(1.07)}
.vc .vivi.is-salto{animation:vc-salto .7s cubic-bezier(.3,1.4,.5,1)}
.vc .vivi.is-piensa{animation:vc-duda 1.1s ease-in-out infinite}
@keyframes vc-salto{0%{transform:none}30%{transform:translateY(-22px) scale(1.08,.94) rotate(-6deg)}55%{transform:translateY(0) scale(.96,1.05)}75%{transform:translateY(-6px) rotate(3deg)}100%{transform:none}}
@keyframes vc-duda{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg) translateY(-4px)}}

/* Bocadillo de la mascota: sale con un pequeño rebote desde la cola. */
.vc-bubble{transform-origin:100% 50%;transition:opacity .2s,transform .35s cubic-bezier(.3,1.6,.5,1)}
.vc-bubble.is-cambio{transform:scale(.7)}

/* Estado de la cabecera: el punto «en línea» late; «Vivi está escribiendo…». */
.vc-chat__top i{position:relative}
.vc-chat__top i::after{content:"";position:absolute;inset:0;border-radius:50%;background:#5E9A58;animation:vc-late 2.2s ease-out infinite}
@keyframes vc-late{0%{transform:scale(1);opacity:.55}70%,100%{transform:scale(2.8);opacity:0}}
.vc-chat__top em{font-style:normal}
.vc-chat.is-escribe .vc-chat__top em{color:#3D6B3A;font-weight:600}

/* Globos: Vivi sale desde su esquina, los tuyos desde la tuya. */
.vc-m--vivi{transform-origin:0 0;animation:vc-globo .45s cubic-bezier(.3,1.4,.5,1) both}
.vc-m--yo{transform-origin:100% 100%;animation:vc-globo .4s cubic-bezier(.3,1.4,.5,1) both}
@keyframes vc-globo{from{opacity:0;transform:translateY(10px) scale(.86)}to{opacity:1;transform:none}}
.vc-m.is-teclea::after{content:"";display:inline-block;width:2px;height:1.05em;margin-left:2px;vertical-align:-.15em;background:var(--cta);animation:vc-cursor .7s steps(1) infinite}
@keyframes vc-cursor{50%{opacity:0}}
.vc-chips button{animation:vc-chip .4s cubic-bezier(.3,1.5,.5,1) both;animation-delay:calc(var(--i,0) * 70ms)}
@keyframes vc-chip{from{opacity:0;transform:translateY(8px) scale(.9)}to{opacity:1;transform:none}}
.vc-chips.is-ola button{animation:vc-ola .6s ease-in-out both;animation-delay:calc(var(--i,0) * 90ms)}
@keyframes vc-ola{0%,100%{transform:none}40%{transform:translateY(-7px);border-color:var(--cta)}}
.vc-pensando{transform-origin:0 0;animation:vc-globo .35s cubic-bezier(.3,1.4,.5,1) both}

/* Antes de que llegue el JS, el saludo espera oculto (lo escribe Vivi);
 * si el JS no llega, aparece solo a los 3 s. */
.vc-pre>.vc-m,.vc-pre>.vc-chips{opacity:0;animation:vc-aparece .3s 3s forwards}
@keyframes vc-aparece{to{opacity:1}}

/* Campo de texto: invita a escribir y el botón se anima al tener texto. */
.vc-form{transition:border-color .2s,transform .25s cubic-bezier(.3,1.5,.5,1)}
.vc-form:focus-within{transform:translateY(-2px)}
.vc-form.is-llama{animation:vc-llama 1.2s ease-in-out 2}
@keyframes vc-llama{0%,100%{border-color:var(--line)}50%{border-color:var(--cta)}}
.vc-form textarea::placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--t3);opacity:1}
.vc-send{transition:background-color .2s,transform .3s cubic-bezier(.3,1.6,.5,1)}
.vc-send svg{transition:transform .3s}
.vc-form.is-listo .vc-send{transform:scale(1.1)}
.vc-form.is-listo .vc-send svg{animation:vc-flecha 1s ease-in-out infinite}
@keyframes vc-flecha{0%,100%{transform:none}50%{transform:translateX(3px)}}
.vc-send:active{transform:scale(.92)}

@media (max-width:980px){
  .vc-bubble{transform-origin:0 50%}
  .vc .vivi.is-atenta{transform:rotate(7deg) scale(1.07)}
}

@media (prefers-reduced-motion:reduce){
  .vc.vc-vivo .vivi__cuerpo,.vc.vc-vivo .vivi__sombra,.vc .vivi.is-salto,.vc .vivi.is-piensa,.vc-chat__top i::after,.vc-chips button,.vc-chips.is-ola button,.vc-form.is-llama,.vc-form.is-listo .vc-send svg,.vc-m.is-teclea::after{animation:none}
  .vc .vivi,.vc-bubble,.vc-form,.vc-send{transition:none}
  .vc-m,.vc-card,.vc-pensando i{animation:none}
  .vc-js .vc-rv{opacity:1;transform:none;transition:none}
  .vc-pro__ph img,.vc-btn--xl svg{transition:none}
}
