.pchat[hidden], .pchat [hidden]{ display:none !important; }
.visually-hidden{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.pchat{
  position:fixed; right:18px; bottom:calc(18px + env(safe-area-inset-bottom) + 84px); z-index:960;
  width:min(420px, calc(100vw - 36px)); max-height:min(640px, calc(100vh - 140px));
  display:flex; flex-direction:column; background:var(--crema, #FBF7EE); color:var(--tinta, #0C1F4F);
  border-radius:4px; box-shadow:0 12px 40px rgba(12,31,79,.12), 0 0 0 1px rgba(12,31,79,.12);
  overflow:hidden; font-family:var(--f-text, 'Montserrat', sans-serif); font-size:14.5px; line-height:1.5;
  opacity:0; transform:translateY(14px) scale(.98); transform-origin:100% 100%;
  transition:opacity .3s ease, transform .35s cubic-bezier(.22,1,.28,1);
}
.pchat.abierto{ opacity:1; transform:none; }
.pchat__cab{ display:flex; align-items:center; gap:12px; padding:14px 14px 12px 16px; border-bottom:1px solid var(--oro, #C0A145); color:var(--tinta, #0C1F4F); }
.pchat__anillo{ width:28px; height:28px; flex:0 0 auto; display:block; }
.pchat__tit{ display:flex; flex-direction:column; line-height:1.1; flex:0 0 auto; }
.pchat__tit b{ font-family:var(--f-display, 'Newsreader', serif); font-weight:500; font-size:19px; }
.pchat__tit span{ font-size:9.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--navy, #004484); margin-top:3px; white-space:nowrap; }
.pchat__humano{
  margin-left:auto; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--navy, #004484);
  text-decoration:none; text-align:right; max-width:120px; line-height:1.35; text-decoration:underline; text-decoration-color:var(--oro, #C0A145); text-decoration-thickness:1.5px; text-underline-offset:3px;
}
.pchat__x{ width:34px; height:34px; border:0; background:transparent; color:var(--tinta, #0C1F4F); font-size:24px; line-height:1; cursor:pointer; border-radius:50%; flex:0 0 auto; }
.pchat__x:hover{ background:rgba(12,31,79,.06); }

/* Puertas */
.pchat__puertas{ padding:16px 18px 18px; display:flex; flex-direction:column; }
.pchat__hola{ margin:0 0 10px; font-family:var(--f-display, serif); font-size:17px; line-height:1.35; color:var(--tinta, #0C1F4F); }
.pchat__puerta{
  display:flex; flex-direction:column; gap:3px; text-align:left; padding:14px 34px 14px 0; position:relative;
  border:0; border-top:1px solid rgba(12,31,79,.14); background:transparent; cursor:pointer; text-decoration:none; color:var(--tinta, #0C1F4F); font-family:inherit;
}
.pchat__puerta:last-child{ border-bottom:1px solid rgba(12,31,79,.14); }
.pchat__puerta b{ font-family:var(--f-display, serif); font-weight:500; font-size:19px; line-height:1.2; }
.pchat__puerta span{ font-size:12.5px; color:rgba(12,31,79,.68); line-height:1.4; }
.pchat__puerta::after{ content:"→"; position:absolute; right:4px; top:50%; transform:translateY(-50%); font-size:18px; color:var(--oro, #C0A145); transition:transform .3s cubic-bezier(.22,1,.28,1); }
.pchat__puerta:hover::after, .pchat__puerta:focus-visible::after{ transform:translate(6px,-50%); }
.pchat__puerta:hover b{ text-decoration:underline; text-decoration-color:var(--oro-vivo, #F9C658); text-decoration-thickness:2px; text-underline-offset:4px; }
.pchat__puerta:focus-visible{ outline:2px solid var(--oro-vivo, #F9C658); outline-offset:-2px; }

/* Chat — el colegio habla SIN caja (hairline dorada como sangría); el papá en velo ligero */
.pchat__chat{ display:flex; flex-direction:column; min-height:0; flex:1 1 auto; }
.pchat__msjs{ flex:1 1 auto; overflow:auto; padding:18px 18px 8px; display:flex; flex-direction:column; gap:16px; min-height:240px; max-height:440px; -webkit-overflow-scrolling:touch; }
.pchat__m{ max-width:86%; font-size:14.5px; line-height:1.5; }
.pchat__m--colegio{ align-self:flex-start; max-width:88%; padding-left:16px; border-left:1px solid var(--oro, #C0A145); color:var(--tinta, #0C1F4F); }
.pchat__m--colegio .pchat__tx{ font-family:var(--f-display, 'Newsreader', serif); font-size:16.5px; line-height:1.5; }
.pchat__eti{ display:block; font-style:normal; font-size:10.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--navy, #004484); margin:0 0 5px; }
.pchat__m--sigue{ margin-top:-8px; }
.pchat__m--papa{ align-self:flex-end; max-width:78%; padding:10px 14px; border-radius:4px; background:rgba(12,31,79,.045); color:var(--navy, #004484); font-size:15px; }
.pchat__m--falla{ border-left-color:var(--oro-vivo, #F9C658); }
.pchat__m a{ color:var(--navy, #004484); text-decoration:underline; text-decoration-color:var(--oro, #C0A145); text-underline-offset:2px; }
/* seguimientos clicables bajo la última respuesta */
.pchat__sig{ display:flex; flex-wrap:wrap; gap:6px 18px; padding-left:16px; margin-top:-6px; }
.pchat__sug{ border:0; background:transparent; padding:0 0 2px; cursor:pointer; font-family:var(--f-text, 'Montserrat', sans-serif); font-size:12.5px; color:var(--navy, #004484); text-decoration:none; border-bottom:1px solid var(--oro, #C0A145); transition:border-color .25s ease, color .25s ease; }
.pchat__sug:hover, .pchat__sug:focus-visible{ color:var(--tinta, #0C1F4F); border-bottom-color:var(--oro-vivo, #F9C658); outline:none; }
.pchat__sug--wa{ font-weight:700; }
/* puntitos de espera, dorados, en la sangría */
.pchat__m--espera{ display:flex; align-items:center; gap:12px; padding-block:6px; }
.pchat__puntos{ display:inline-flex; gap:5px; }
.pchat__puntos i{ width:6px; height:6px; border-radius:50%; background:var(--oro, #C0A145); animation:pchat-punto 1.2s ease-in-out infinite; }
.pchat__puntos i:nth-child(2){ animation-delay:.2s; } .pchat__puntos i:nth-child(3){ animation-delay:.4s; }
@keyframes pchat-punto{ 0%,80%,100%{ opacity:.35; } 40%{ opacity:1; } }
.pchat__lento{ font-style:normal; font-size:11.5px; color:rgba(12,31,79,.6); }
/* input sin caja; "Enviar" como texto con subrayado que se traza al haber texto */
.pchat__form{ display:flex; align-items:flex-end; gap:12px; padding:10px 18px 4px; border-top:1px solid rgba(12,31,79,.12); background:var(--crema, #FBF7EE); }
.pchat__in{ flex:1 1 auto; resize:none; border:0; background:transparent; font:inherit; font-size:15px; line-height:1.4; color:var(--tinta, #0C1F4F); padding:8px 0; outline:none; max-height:120px; }
.pchat__in::placeholder{ color:rgba(12,31,79,.45); }
.pchat__enviar{ border:0; background:transparent; padding:0 0 3px; margin-bottom:8px; cursor:pointer; font-family:var(--f-text, 'Montserrat', sans-serif); font-size:13px; font-weight:500; color:rgba(12,31,79,.45); position:relative; transition:color .25s ease; }
.pchat__enviar::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--oro, #C0A145); transform:scaleX(0); transform-origin:0 50%; transition:transform .45s cubic-bezier(.22,1,.28,1); }
.pchat__form.con-texto .pchat__enviar{ color:var(--navy, #004484); }
.pchat__form.con-texto .pchat__enviar::after{ transform:scaleX(1); }
.pchat__enviar:disabled{ opacity:.4; cursor:default; }
.pchat__nota{ margin:0; padding:0 18px 12px; font-size:10.5px; color:rgba(12,31,79,.55); }

/* Móvil: hoja a pantalla completa */
@media (max-width:640px){
  .pchat{ right:0; left:0; bottom:0; width:100vw; max-height:none; height:100dvh; border-radius:0; transform:translateY(24px); }
  .pchat.abierto{ transform:none; }
  .pchat__msjs{ max-height:none; }
  .pchat__humano{ font-size:9.5px; }
  /* en celular el subtítulo sobra (el header ya dice Admisiones + cara): así el link humano no lo parte en 3 líneas */
  .pchat__tit span{ display:none; }
  .pchat__tit b{ font-size:20px; }
  html.pchat-abierto{ overflow:hidden; }
  html.pchat-abierto .bot{ visibility:hidden; pointer-events:none; }
  /* la hoja tapa toda la pantalla: el aro no debe pisar la nota */
}
@media (prefers-reduced-motion:reduce){ .pchat{ transition:none; } .pchat__puntos i{ animation:none; opacity:.8; } }
.pchat__aviso{ margin:-4px 0 12px; font-size:12px; line-height:1.45; color:rgba(12,31,79,.62); }
.pchat__aviso a, .pchat__nota a{ color:inherit; text-decoration:underline; text-decoration-color:var(--oro-vivo, #F9C658); text-underline-offset:3px; }
