/**
 * Psico Core — sistema visual de la one-page de Angela Ramírez.
 * Referencia de diseño: tema Callie Britt (ThemeREX), medido el 06-10-2026:
 * verde #7FB98D, melocotón #F89F73, tinta #2F3030, crema #F0F0EE / #ECEBE6,
 * Poppins (titulares), Yesteryear (subtítulos manuscritos), Domine (textos largos).
 * Los colores salen de los Colores Globales de Elementor (Ajustes del sitio).
 * Ajustes AA: verde de texto #47744F, gris de texto #55615F, botón melocotón con texto oscuro.
 */

/* ==================================================================
   1. TOKENS
   ================================================================== */
:root{
  --ps-verde: var(--e-global-color-primary, #7FB98D);
  --ps-verde-texto: var(--e-global-color-pstxtv, #47744F);
  --ps-verde-oscuro: var(--e-global-color-psverdeo, #3F6A4A);
  --ps-melocoton: var(--e-global-color-accent, #F89F73);
  --ps-melocoton-hover: var(--e-global-color-psmelo2, #F48A57);
  --ps-tinta: var(--e-global-color-secondary, #2F3030);
  --ps-texto: var(--e-global-color-text, #55615F);
  --ps-crema: var(--e-global-color-pscrema, #F0F0EE);
  --ps-crema-2: var(--e-global-color-pscrema2, #ECEBE6);
  --ps-borde: var(--e-global-color-psborde, #E2E1DC);
  --ps-blanco: #FFFFFF;
  --ps-f-titulo: 'Poppins', sans-serif;
  --ps-f-guion: 'Yesteryear', cursive;
  --ps-f-serif: 'Domine', serif;
  --ps-sombra: 0 18px 40px rgba(47, 48, 48, .08);
  --ps-cabecera: 92px;
}
html{ scroll-behavior:smooth; }
body.ps-onepage{ background:var(--ps-blanco); color:var(--ps-texto); }
.ps-onepage [id]{ scroll-margin-top:calc(var(--ps-cabecera) + 8px); }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

/* ==================================================================
   2. TIPOGRAFÍA COMÚN
   ================================================================== */
.ps-guion, .ps-guion .elementor-heading-title{
  font-family:var(--ps-f-guion); font-weight:400; font-size:30px; line-height:1.1;
  color:var(--ps-verde-texto); margin:0 0 6px;
}
.ps-titulo{ font-family:var(--ps-f-titulo); font-weight:600; font-size:36px; line-height:1.2; color:var(--ps-tinta); margin:0; }
.ps-encabezado{ margin-bottom:38px; }
.ps-encabezado--centro{ text-align:center; }
.ps-serif, .ps-serif p{ font-family:var(--ps-f-serif); font-weight:400; font-size:16px; line-height:1.85; }
.ps-serif p{ color:inherit; }
.ps-sobre-color .ps-guion, .ps-sobre-color .ps-titulo{ color:#fff; }
@media (max-width:767px){ .ps-titulo{ font-size:28px; } .ps-guion{ font-size:26px; } }

/* Botón en píldora (melocotón con texto oscuro: AA; el tema original usaba blanco, 2,2:1) */
.ps-onepage .ps-boton, .ps-onepage .elementor-button.ps-boton-pildora, .ps-onepage .ps-boton-pildora .elementor-button{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--ps-f-titulo); font-size:16px; font-weight:500; line-height:1.4;
  color:var(--ps-tinta); background:var(--ps-melocoton);
  padding:16px 44px; border-radius:40px; text-decoration:none; border:0;
  transition:background .3s ease, color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.ps-onepage .ps-boton:hover, .ps-onepage .ps-boton:focus-visible,
.ps-onepage .ps-boton-pildora .elementor-button:hover, .ps-onepage .ps-boton-pildora .elementor-button:focus-visible{
  background:var(--ps-tinta); color:#fff; transform:translateY(-2px); box-shadow:0 10px 24px rgba(47,48,48,.18);
}
.ps-onepage a:focus-visible, .ps-onepage button:focus-visible, .ps-onepage summary:focus-visible{
  outline:3px solid var(--ps-melocoton); outline-offset:3px;
}

/* ==================================================================
   3. CABECERA FIJA Y MENÚ POR ANCLAS
   ================================================================== */
.ps-cabecera{ position:sticky; top:0; z-index:90; transition:box-shadow .3s ease, background-color .3s ease; }
.admin-bar .ps-cabecera{ top:32px; }
@media (max-width:782px){ .admin-bar .ps-cabecera{ top:46px; } }
.ps-cabecera.is-fija{ box-shadow:0 8px 28px rgba(47,48,48,.10); }
.ps-onepage .ps-menu .elementor-nav-menu .elementor-item.ps-activo,
.ps-onepage .ps-menu .elementor-nav-menu .elementor-item[aria-current="location"]{ color:var(--ps-verde-texto); }
.ps-onepage .ps-menu .elementor-nav-menu--main .elementor-item.ps-activo:after{ opacity:1; transform:scale(1); }

/* ==================================================================
   4. PORTADA CON SLIDES
   ================================================================== */
.ps-hero{ position:relative; height:760px; overflow:hidden; background:var(--ps-tinta); }
.ps-hero__slide{ position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity 1.1s ease, visibility 0s linear 1.1s; }
.ps-hero__slide.is-activo{ opacity:1; visibility:visible; transition:opacity 1.1s ease, visibility 0s; }
.ps-hero__fondo{ position:absolute; inset:-2%; background-image:var(--fondo); background-size:cover; background-position:center; transform:scale(1.06); transition:transform 7s ease-out; }
.ps-hero__slide.is-activo .ps-hero__fondo{ transform:scale(1); }
.ps-hero__velo{ position:absolute; inset:0; background:#1E2222; opacity:.42; }
.ps-hero__contenido{
  position:relative; z-index:2; height:100%;
  max-width:1240px; margin:0 auto; padding:0 40px 0 calc(44% + 20px);
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
}
.ps-hero__sub{ color:#fff; font-size:34px; margin-bottom:10px; }
.ps-onepage .ps-hero__titulo{
  font-family:var(--ps-f-titulo); font-weight:700; font-size:48px; line-height:1.14; color:#fff; margin:0 0 30px; max-width:640px;
  text-shadow:0 2px 18px rgba(0,0,0,.18);
}
.ps-hero__slide .ps-hero__sub, .ps-hero__slide .ps-hero__titulo, .ps-hero__slide .ps-boton{
  opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);
}
.ps-hero__slide.is-activo .ps-hero__sub{ opacity:1; transform:none; transition-delay:.35s; }
.ps-hero__slide.is-activo .ps-hero__titulo{ opacity:1; transform:none; transition-delay:.55s; }
.ps-hero__slide.is-activo .ps-boton{ opacity:1; transform:none; transition-delay:.8s; }
/* Puntos verticales a la izquierda, como el tema */
.ps-hero__puntos{ position:absolute; left:40px; top:50%; transform:translateY(-50%); z-index:3; display:flex; flex-direction:column; gap:12px; }
.ps-hero .ps-hero__punto{
  width:12px; height:12px; min-height:0; padding:0; border-radius:50%; border:2px solid #fff;
  background:transparent; cursor:pointer; transition:background .3s ease, transform .3s ease;
}
.ps-hero .ps-hero__punto.is-activo{ background:var(--ps-melocoton); border-color:var(--ps-melocoton); transform:scale(1.15); }
/* Globo verde «¿Tienes preguntas?» */
.ps-onepage .ps-globo{
  position:absolute; right:64px; top:56px; z-index:3; width:118px; height:118px; border-radius:50%;
  background:var(--ps-verde-oscuro); color:#fff; text-decoration:none;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  box-shadow:0 12px 28px rgba(0,0,0,.18); transition:transform .35s ease;
  animation:ps-flota 4.5s ease-in-out infinite;
}
.ps-globo:after{ content:''; position:absolute; right:16px; bottom:2px; border:14px solid transparent; border-top-color:var(--ps-verde-oscuro); border-right:0; transform:rotate(18deg); }
.ps-onepage .ps-globo:hover, .ps-onepage .ps-globo:focus-visible{ transform:scale(1.06); color:#fff; }
.ps-globo__l1{ font-family:var(--ps-f-titulo); font-weight:600; font-size:15px; line-height:1.1; }
.ps-globo__l2{ font-family:var(--ps-f-guion); font-size:22px; line-height:1; }
@keyframes ps-flota{ 0%,100%{ translate:0 0; } 50%{ translate:0 -8px; } }
@media (max-width:1024px){
  .ps-hero__contenido{ padding:0 40px 0 90px; }
  .ps-hero__titulo{ font-size:44px; }
}
@media (max-width:767px){
  /* el texto empieza bajo el globo (arriba a la derecha) y sobre los puntos (abajo) */
  .ps-hero__contenido{ padding:120px 22px 72px; align-items:flex-start; justify-content:flex-end; }
  .ps-onepage .ps-hero__titulo{ font-size:30px; margin-bottom:22px; }
  .ps-hero__sub{ font-size:28px; }
  .ps-hero__puntos{ left:auto; right:24px; top:auto; bottom:28px; transform:none; flex-direction:row; }
  .ps-onepage .ps-globo{ right:16px; top:16px; width:84px; height:84px; }
  .ps-globo__l1{ font-size:12px; } .ps-globo__l2{ font-size:18px; }
  .ps-hero__velo{ opacity:.5 !important; }
}
@media (prefers-reduced-motion: reduce){
  .ps-hero__fondo{ transition:none; transform:none; }
  .ps-globo{ animation:none; }
}

/* ==================================================================
   5. ASISTENCIAS
   ================================================================== */
.ps-servicios{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:28px; }
.ps-servicio{
  background:#fff; border:1px solid var(--ps-borde); border-radius:18px; padding:38px 26px 34px; text-align:center;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.ps-servicio:hover{ transform:translateY(-6px); box-shadow:var(--ps-sombra); border-color:transparent; }
.ps-servicio__icono{
  width:84px; height:84px; margin:0 auto 22px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:#FDEDE4; color:#C25F2E; transition:background .35s ease, color .35s ease;
}
.ps-servicio:hover .ps-servicio__icono{ background:var(--ps-melocoton); color:var(--ps-tinta); }
.ps-servicio__icono .ps-ico{ width:40px; height:40px; }
.ps-servicio__titulo{ font-family:var(--ps-f-titulo); font-size:19px; font-weight:600; line-height:1.35; color:var(--ps-tinta); margin:0; }
.ps-servicio__texto{ margin:12px 0 0; font-size:15px; line-height:1.7; }
@media (max-width:1024px){ .ps-servicios{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:767px){ .ps-servicios{ grid-template-columns:minmax(0,1fr); gap:18px; } }

/* ==================================================================
   6. LISTAS
   ================================================================== */
.ps-lista{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:minmax(0,1fr); gap:14px 34px; }
.ps-lista__item{ display:flex; align-items:flex-start; gap:16px; font-size:16px; line-height:1.6; color:var(--ps-texto); }
.ps-lista__num{
  flex:0 0 46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-family:var(--ps-f-titulo); font-weight:600; font-size:15px; color:var(--ps-tinta); background:var(--ps-melocoton);
}
.ps-lista--numerada .ps-lista__item{ align-items:center; padding:12px 18px 12px 12px; background:#fff; border-radius:40px; box-shadow:0 6px 20px rgba(47,48,48,.06); }
.ps-lista--numerada .ps-lista__texto{ color:var(--ps-tinta); }
.ps-lista__marca{ flex:0 0 26px; height:26px; margin-top:1px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#E4F1E7; color:var(--ps-verde-texto); }
.ps-lista__marca .ps-ico{ width:16px; height:16px; }
.ps-lista--punto .ps-lista__item:before{ content:''; flex:0 0 8px; height:8px; margin-top:9px; border-radius:50%; background:var(--ps-melocoton); }
.ps-sobre-color .ps-lista__item, .ps-sobre-color .ps-lista__texto{ color:#fff; }
.ps-sobre-color .ps-lista__marca{ background:rgba(255,255,255,.16); color:#fff; }
@media (max-width:767px){ .ps-lista{ grid-template-columns:minmax(0,1fr) !important; } }

/* ==================================================================
   7. PREGUNTAS FRECUENTES
   ================================================================== */
.ps-preguntas{ display:flex; flex-direction:column; gap:14px; }
.ps-pregunta{ background:#fff; border-radius:14px; box-shadow:0 6px 20px rgba(47,48,48,.06); overflow:hidden; }
.ps-pregunta__q{
  list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:20px 24px; font-family:var(--ps-f-titulo); font-size:17px; font-weight:600; color:var(--ps-tinta);
}
.ps-pregunta__q::-webkit-details-marker{ display:none; }
.ps-pregunta__signo{ position:relative; flex:0 0 34px; height:34px; border-radius:50%; background:var(--ps-crema); transition:background .3s ease, transform .3s ease; }
.ps-pregunta__signo:before, .ps-pregunta__signo:after{ content:''; position:absolute; left:50%; top:50%; width:12px; height:2px; margin:-1px 0 0 -6px; background:var(--ps-tinta); transition:transform .3s ease; }
.ps-pregunta__signo:after{ transform:rotate(90deg); }
.ps-pregunta[open] .ps-pregunta__signo{ background:var(--ps-melocoton); }
.ps-pregunta[open] .ps-pregunta__signo:after{ transform:rotate(0deg); }
.ps-pregunta__r{ padding:0 24px 22px; font-size:15.5px; line-height:1.75; }
.ps-pregunta__r p{ margin:0; }

/* ==================================================================
   8. TESTIMONIOS
   ================================================================== */
.ps-testimonios{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:30px; align-items:stretch; }
.ps-testimonio{
  position:relative; margin:0; display:flex; flex-direction:column; justify-content:space-between; gap:24px;
  background:#fff; border-radius:20px; padding:44px 32px 30px; box-shadow:var(--ps-sombra);
}
.ps-testimonio:before{
  content:'\201C'; position:absolute; top:-6px; left:26px;
  font-family:Georgia, serif; font-size:96px; line-height:1; color:var(--ps-verde);
}
.ps-testimonio__texto{ margin:0; padding:0; border:0; font-family:var(--ps-f-serif); font-size:15px; line-height:1.85; color:var(--ps-texto); }
.ps-testimonio__texto p{ margin:0; }
.ps-testimonio__autor{ display:flex; align-items:center; gap:14px; font-style:normal; }
.ps-testimonio__iniciales, .ps-testimonio__foto{
  flex:0 0 52px; width:52px; height:52px; border-radius:50%; object-fit:cover;
  display:flex; align-items:center; justify-content:center;
  background:var(--ps-verde-oscuro); color:#fff; font-family:var(--ps-f-titulo); font-weight:600; font-size:16px;
}
.ps-testimonio__nombre{ font-family:var(--ps-f-titulo); font-weight:600; font-size:16px; color:var(--ps-tinta); }
@media (max-width:1024px){ .ps-testimonios{ grid-template-columns:minmax(0,1fr); } }

/* ==================================================================
   9. DATOS DE CONTACTO
   ================================================================== */
.ps-datos{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:18px; }
.ps-dato{ display:flex; align-items:center; gap:18px; }
.ps-dato__icono{ flex:0 0 46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--ps-crema-2); color:#C25F2E; }
.ps-dato__icono .ps-ico{ width:20px; height:20px; }
.ps-onepage .ps-dato__texto, .ps-onepage .ps-dato__texto a{ font-family:var(--ps-f-titulo); font-size:16px; line-height:1.5; color:var(--ps-tinta); text-decoration:none; overflow-wrap:anywhere; }
.ps-onepage .ps-dato__texto a:hover{ color:var(--ps-verde-texto); text-decoration:underline; }

/* ==================================================================
   10. FORMULARIO DE CONTACTO (Elementor Pro)
   ================================================================== */
.ps-form .elementor-field-group .elementor-field:not(.elementor-select-wrapper):not([type=checkbox]),
.ps-form .elementor-field-group select{
  background:#fff; border:1px solid var(--ps-borde); border-radius:28px; padding:14px 22px; min-height:52px;
  font-family:var(--ps-f-titulo); font-size:15px; color:var(--ps-tinta);
}
.ps-form .elementor-field-group textarea.elementor-field{ border-radius:20px; min-height:140px; }
.ps-form .elementor-field:focus{ border-color:var(--ps-verde); box-shadow:0 0 0 3px rgba(127,185,141,.25); outline:none; }
.ps-form .elementor-field::placeholder{ color:#6A7573; opacity:1; }
.ps-form .elementor-field-type-acceptance .elementor-field-option{ display:flex; align-items:flex-start; gap:8px; }
.ps-form .elementor-field-type-acceptance input[type=checkbox]{ width:16px; height:16px; min-height:0; margin:4px 0 0; padding:0; accent-color:var(--ps-verde-texto); flex:0 0 auto; }
.ps-form .elementor-field-type-acceptance label{ font-size:14px; line-height:1.5; color:var(--ps-texto); }
.ps-form .elementor-button{ border-radius:40px; padding:16px 44px; font-family:var(--ps-f-titulo); font-weight:500; }

/* ==================================================================
   11. IMÁGENES DE SECCIÓN Y BANDAS
   ================================================================== */
.ps-foto img, .ps-foto .elementor-widget-container img{ border-radius:24px; box-shadow:var(--ps-sombra); }
.ps-foto--hoja img{ border-radius:160px 24px 160px 24px; }
.ps-redes .elementor-social-icon{ transition:transform .3s ease, background-color .3s ease; }
.ps-redes .elementor-social-icon:hover{ transform:translateY(-3px); }

/* ==================================================================
   12. WHATSAPP FLOTANTE
   ================================================================== */
.ps-onepage .ps-whatsapp{
  position:fixed; right:22px; bottom:22px; z-index:80;
  display:inline-flex; align-items:center; gap:10px; padding:12px 20px 12px 14px;
  background:#1B7F4B; color:#fff; border-radius:40px; text-decoration:none;
  font-family:var(--ps-f-titulo); font-weight:500; font-size:15px; box-shadow:0 10px 26px rgba(0,0,0,.22);
  transition:transform .3s ease, background .3s ease;
}
.ps-onepage .ps-whatsapp:hover, .ps-onepage .ps-whatsapp:focus-visible{ background:#146B3E; transform:translateY(-3px); color:#fff; }
.ps-whatsapp .ps-ico{ width:26px; height:26px; }
@media (max-width:767px){ .ps-whatsapp{ padding:14px; } .ps-whatsapp__texto{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); } }
.ps-editando .ps-whatsapp{ position:relative; right:auto; bottom:auto; }

/* ==================================================================
   13. ENTRADAS AL APARECER
   ================================================================== */
.ps-js .ps-aparece{ opacity:0; transform:translateY(30px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.ps-js .ps-aparece.ps-visible{ opacity:1; transform:none; }
.ps-retardo-1{ transition-delay:0s; } .ps-retardo-2{ transition-delay:.1s; } .ps-retardo-3{ transition-delay:.2s; }
.ps-retardo-4{ transition-delay:.3s; } .ps-retardo-5{ transition-delay:.4s; } .ps-retardo-6{ transition-delay:.5s; }
.ps-editando .ps-aparece{ opacity:1 !important; transform:none !important; }
@media (prefers-reduced-motion: reduce){ .ps-aparece{ opacity:1 !important; transform:none !important; transition:none !important; } }

.ps-vacio{ margin:0; padding:22px; text-align:center; border:1px dashed var(--ps-borde); border-radius:10px; font-size:14px; }

/* Lector de pantalla */
.ps-solo-lector{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ==================================================================
   14. PIE (fondo tinta)
   ================================================================== */
.ps-pie .ps-dato__icono{ background:rgba(255,255,255,.08); color:var(--ps-melocoton); }
.ps-onepage .ps-pie .ps-dato__texto, .ps-onepage .ps-pie .ps-dato__texto a{ color:#E4E6E2; font-size:14.5px; overflow-wrap:break-word; }
.ps-onepage .ps-pie .ps-dato__texto a:hover{ color:var(--ps-melocoton); }
.ps-pie .elementor-heading-title{ font-size:18px; }
.ps-pie p{ margin:0; }
.ps-cabecera .elementor-nav-menu--main .elementor-item{ white-space:nowrap; }

.ps-onepage .ps-globo, .ps-onepage .ps-globo span{ color:#fff; }
.ps-onepage .ps-whatsapp, .ps-onepage .ps-whatsapp:hover{ color:#fff; }
.ps-onepage .elementor-button .elementor-button-text{ white-space:nowrap; }
@media (max-width:767px){ .ps-pie{ padding-bottom:96px !important; } }
@media (max-width:767px){ .ps-hero__fondo{ background-image:var(--fondo-m, var(--fondo)); } }

/* Cabecera entre tableta y escritorio ancho: el menú de 6 entradas no cabe con todo.
   Se ocultan primero el teléfono (está en el pie y en Contacto) y luego el botón («Contacto» está en el menú). */
@media (min-width:1025px) and (max-width:1240px){ .ps-cabecera .elementor-widget-icon-list{ display:none; } }
@media (min-width:1025px) and (max-width:1120px){ .ps-cabecera .elementor-widget-button{ display:none; } }
