/* ===========================================================================
   ESTIMULS — Home "Editorial calido"  (Fraunces + Nunito)
   Cargado solo en la Home (post 11) desde el child theme. Sin CDN de JS.
   Filosofia: tipografia grande, aire, ritmo asimetrico, color del logo con
   jerarquia. Objetivo Awwwards-ish dentro de Elementor.
   =========================================================================== */

:root{
  --rojo:#BE1A3E; --rojo-d:#9E1433;
  --naranja:#E3964E; --naranja-2:#F0B072;
  --crema:#FBF4E6; --crema-2:#F4E7CE; --blush:#FBECEC;
  --tinta:#2A2320; --tinta-60:#6B615A; --tinta-40:#9A9089;
  --blanco:#FFFFFF; --linea:rgba(42,35,32,.10);
  --ff-disp:"Fraunces", Georgia, serif;
  --ff-body:"Nunito", system-ui, sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.76,0,.24,1);
  --mw:1180px;
}

/* ---- Reset suave de la pagina ------------------------------------------- */
body.page-id-11{ background:var(--blanco); color:var(--tinta); font-family:var(--ff-body); }
body.page-id-11 .elementor-widget-text-editor,
body.page-id-11 .elementor-widget-text-editor p{ font-family:var(--ff-body); color:var(--tinta-60); line-height:1.7; }
body.page-id-11 .elementor-widget-heading .elementor-heading-title{ font-family:var(--ff-disp); color:var(--tinta); letter-spacing:-.015em; line-height:1.02; }

/* seccion = contenedor; damos aire y limitamos ancho interno */
body.page-id-11 .e-con > .e-con-inner{ max-width:var(--mw); }

/* ---- Tokens de tipografia reutilizables --------------------------------- */
.es-eyebrow .elementor-heading-title,
.es-eyebrow{ font-family:var(--ff-body)!important; font-weight:800; font-size:.8rem!important;
  letter-spacing:.18em; text-transform:uppercase; color:var(--rojo)!important; line-height:1.4!important; }

.es-h1 .elementor-heading-title{ font-weight:600; font-size:clamp(2.6rem,6.2vw,5rem)!important;
  line-height:.98!important; letter-spacing:-.03em!important; }
.es-h1 em{ font-style:italic; color:var(--rojo); font-weight:500; }

.es-h2 .elementor-heading-title{ font-weight:600; font-size:clamp(2rem,4.2vw,3.3rem)!important;
  line-height:1.03!important; letter-spacing:-.025em!important; }
.es-h2 em{ font-style:italic; color:var(--rojo); }

.es-lead .elementor-widget-container,
.es-lead p{ font-size:clamp(1.12rem,1.7vw,1.45rem); line-height:1.6; color:var(--tinta); font-weight:500; }

.es-sub p{ font-size:clamp(1.02rem,1.3vw,1.15rem); color:var(--tinta-60); }

/* ---- Botones ------------------------------------------------------------ */
body.page-id-11 .es-btn .elementor-button{
  font-family:var(--ff-body); font-weight:800; font-size:1rem; letter-spacing:.01em;
  padding:16px 30px; border-radius:999px; background:var(--rojo); color:#fff;
  box-shadow:0 10px 24px -10px rgba(190,26,62,.6); transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s; }
body.page-id-11 .es-btn .elementor-button:hover{ background:var(--rojo-d); transform:translateY(-3px);
  box-shadow:0 16px 30px -12px rgba(190,26,62,.7); }
body.page-id-11 .es-link .elementor-button{
  background:transparent; color:var(--tinta); padding:16px 10px; box-shadow:none;
  font-weight:800; border-radius:0; position:relative; }
body.page-id-11 .es-link .elementor-button:after{ content:""; position:absolute; left:10px; right:10px; bottom:10px;
  height:2px; background:var(--rojo); transform:scaleX(.4); transform-origin:left; transition:transform .35s var(--ease); }
body.page-id-11 .es-link .elementor-button:hover{ transform:none; }
body.page-id-11 .es-link .elementor-button:hover:after{ transform:scaleX(1); }

/* =========================================================================
   HERO  — split asimetrico, sin overlay plano
   ========================================================================= */
/* fondo = foto a sangre + velo calido degradado (legible a la izq, se abre a la der) */
#es-hero{ position:relative; overflow:hidden;
  background:var(--crema) url("https://estimulslavila.com/wp-content/uploads/2026/10/sec-estimuls.jpg") center/cover no-repeat; }
#es-hero:before{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(100deg, rgba(251,244,230,.97) 0%, rgba(251,244,230,.9) 40%, rgba(244,231,206,.62) 72%, rgba(227,150,78,.28) 100%); }
#es-hero > .e-con-inner{ position:relative; z-index:1; display:grid; grid-template-columns:1.12fr .88fr;
  gap:clamp(24px,4vw,72px); align-items:center; padding-block:clamp(64px,9vw,120px); }
#es-hero-text{ max-width:600px; }
#es-hero-text .es-h1 .elementor-heading-title{ margin:.3em 0 .4em; }
#es-hero-actions > .e-con-inner{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }

/* media: foto en marco organico + bloque de color detras (solape editorial) */
#es-hero-media{ position:relative; display:block!important; }
#es-hero-media .elementor-widget-image{ position:relative; z-index:2; display:block; }
#es-hero-media img{ display:block; width:100%; height:clamp(380px,46vw,560px); object-fit:cover;
  border-radius:28px 28px 28px 92px; box-shadow:0 40px 70px -40px rgba(42,35,32,.5); }
/* acento naranja asomando SOLO por la esquina inferior derecha */
#es-hero-media:before{ content:""; position:absolute; z-index:1; right:-18px; bottom:-18px; width:40%; height:42%;
  background:var(--naranja); border-radius:26px 26px 70px 26px; opacity:.95; }
/* punto rojo sobre la esquina redonda inferior izquierda */
#es-hero-media:after{ content:""; position:absolute; z-index:3; left:-14px; bottom:30px; width:52px; height:52px;
  border-radius:50%; background:var(--rojo); box-shadow:0 10px 24px -8px rgba(190,26,62,.6); }

/* =========================================================================
   TRUST  — franja fina, no tarjetas
   ========================================================================= */
#es-trust{ background:var(--blanco); border-bottom:1px solid var(--linea); }
#es-trust > .e-con-inner{ padding-block:clamp(26px,3vw,40px); }
.es-trust-row{ display:flex!important; justify-content:center; align-items:center;
  gap:18px clamp(20px,2.6vw,40px); flex-wrap:wrap; font-family:var(--ff-body); }
.es-trust-row b{ display:none; } /* oculta el check suelto del contenido; el icono lo pone el ::before */
.es-trust-row span{ display:inline-flex; align-items:center; gap:14px; white-space:nowrap;
  font-weight:800; font-size:clamp(1.02rem,1.25vw,1.18rem); color:var(--tinta); }
.es-trust-row span::before{ content:""; flex:0 0 48px; width:48px; height:48px; border-radius:50%;
  background:var(--crema-2) center/24px 24px no-repeat; box-shadow:inset 0 0 0 1px rgba(190,26,62,.14);
  transition:transform .35s var(--ease), background-color .35s; }
.es-trust-row span:hover::before{ transform:translateY(-3px); background-color:var(--blush); }
.es-trust-row span:nth-child(1)::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23BE1A3E%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2020s-6.5-4.2-9-8C1.4%209.3%203%206%206.2%206c1.9%200%203.1%201.1%204.3%202.4h3C14.7%207.1%2015.9%206%2017.8%206%2021%206%2022.6%209.3%2021%2012c-2.5%203.8-9%208-9%208z%27%2F%3E%3C%2Fsvg%3E"); }
.es-trust-row span:nth-child(2)::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23BE1A3E%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%279%27%20cy%3D%279%27%20r%3D%272.3%27%2F%3E%3Ccircle%20cx%3D%2716%27%20cy%3D%2710.5%27%20r%3D%271.8%27%2F%3E%3Cpath%20d%3D%27M4.5%2019c0-2.8%202-4.6%204.5-4.6s4.5%201.8%204.5%204.6%27%2F%3E%3Cpath%20d%3D%27M14.5%2018.5c.2-2.2%201.6-3.4%203.3-3.4%201.6%200%202.9%201.1%203.2%203%27%2F%3E%3C%2Fsvg%3E"); }
.es-trust-row span:nth-child(3)::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23BE1A3E%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%202.6l2.1%201.5%202.6-.1.8%202.5%202%201.6-.8%202.5.8%202.5-2%201.6-.8%202.5-2.6-.1L12%2021.4l-2.1-1.5-2.6.1-.8-2.5-2-1.6.8-2.5-.8-2.5%202-1.6.8-2.5%202.6.1z%27%2F%3E%3Cpath%20d%3D%27M9.2%2012l2%202%203.6-3.8%27%2F%3E%3C%2Fsvg%3E"); }
.es-trust-row span:nth-child(4)::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23BE1A3E%27%20stroke-width%3D%271.9%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273.5%27%20y%3D%274.5%27%20width%3D%2717%27%20height%3D%2716%27%20rx%3D%272.2%27%2F%3E%3Cpath%20d%3D%27M3.5%209h17M8%202.8v3.4M16%202.8v3.4%27%2F%3E%3Cpath%20d%3D%27M7.8%2013.3h3.2M7.8%2016.6h6.4%27%2F%3E%3C%2Fsvg%3E"); }
@media(max-width:640px){
  .es-trust-row{ gap:16px 24px; }
  .es-trust-row span{ font-size:1rem; gap:10px; }
  .es-trust-row span::before{ flex-basis:40px; width:40px; height:40px; background-size:21px 21px; }
}

/* =========================================================================
   INTRO  — editorial asimetrico, lead grande
   ========================================================================= */
#es-intro{ background:var(--blanco); }
#es-intro > .e-con-inner{ display:grid; grid-template-columns:.38fr .62fr; gap:clamp(24px,5vw,80px);
  align-items:start; padding-block:clamp(70px,9vw,120px); }
#es-intro-side .es-h2 .elementor-heading-title{ position:sticky; top:120px; }
#es-intro-body .es-lead:first-child p:first-child::first-letter{ /* capital decorativa */
  font-family:var(--ff-disp); font-size:3.4em; float:left; line-height:.8; padding:.05em .12em 0 0; color:var(--rojo); font-weight:600; }

/* =========================================================================
   SERVICIOS  — filas editoriales numeradas (NO 3 tarjetas clonicas)
   ========================================================================= */
#es-serv{ background:var(--crema); }
#es-serv > .e-con-inner{ padding-block:clamp(70px,9vw,120px); }
/* fila = contenedor full (sin .e-con-inner) que contiene directo el numero.
   Las clases custom de contenedor NO renderizan en Elementor -> se usa :has del widget */
#es-serv .e-con-full:has(> .es-num){ display:grid!important; grid-template-columns:auto minmax(0,1fr) auto;
  gap:clamp(20px,4vw,56px); align-items:start; padding:clamp(30px,4vw,48px) 0; border-top:1px solid var(--linea); }
#es-serv .es-num{ align-self:start; }
#es-serv .es-serv-thumb{ align-self:center; }
/* cierra la ultima linea sobre el CTA (solo el contenedor hijo directo de la seccion) */
#es-serv > .e-con-inner > .e-con-full:has(> .elementor-widget-button){ border-top:1px solid var(--linea); padding-top:44px; margin-top:4px; }
.es-num .elementor-heading-title{ font-size:clamp(2.6rem,5vw,4.4rem); font-weight:600; color:transparent;
  -webkit-text-stroke:1.4px var(--naranja); letter-spacing:-.02em; transition:color .4s var(--ease); }
.es-serv-txt .es-h2 .elementor-heading-title{ font-size:clamp(1.5rem,2.4vw,2.1rem)!important; }
.es-serv-thumb img{ width:clamp(120px,15vw,190px); height:clamp(120px,15vw,190px); object-fit:cover;
  border-radius:22px; transition:transform .5s var(--ease), border-radius .5s var(--ease); }
#es-serv .e-con-full:has(> .es-num):hover .es-num .elementor-heading-title{ color:var(--rojo); -webkit-text-stroke-color:var(--rojo); }
#es-serv .e-con-full:has(> .es-num):hover .es-serv-thumb img{ transform:scale(1.04) rotate(-1.5deg); border-radius:30px; }
@media(max-width:820px){
  #es-serv .e-con-full:has(> .es-num){ grid-template-columns:auto minmax(0,1fr); }
  .es-serv-thumb{ display:none; }
}

/* =========================================================================
   EL CENTRO  — collage de 2 fotos solapadas + features
   ========================================================================= */
#es-centro{ background:var(--blanco); }
#es-centro > .e-con-inner{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,5vw,80px);
  align-items:center; padding-block:clamp(70px,9vw,120px); }
#es-centro-media{ position:relative; min-height:440px; }
#es-centro-media .es-img-a img{ width:76%; height:360px; object-fit:cover; border-radius:26px;
  box-shadow:0 30px 60px -36px rgba(42,35,32,.5); }
#es-centro-media .es-img-b{ position:absolute; right:0; bottom:0; width:52%; }
#es-centro-media .es-img-b img{ width:100%; height:240px; object-fit:cover; border-radius:22px;
  border:8px solid #fff; box-shadow:0 24px 50px -30px rgba(42,35,32,.5); }
.es-feat .elementor-widget-container{ padding:18px 0; border-top:1px solid var(--linea); }
.es-feat b{ display:block; font-family:var(--ff-disp); font-size:1.2rem; color:var(--tinta); margin-bottom:4px; }
@media(max-width:820px){ #es-centro-media{ min-height:420px; } }

/* =========================================================================
   FAQ  — accordion minimal
   ========================================================================= */
#es-faq{ background:var(--crema); }
#es-faq > .e-con-inner{ padding-block:clamp(66px,8vw,110px); }
#es-faq .elementor-accordion{ max-width:820px; margin:0 auto; }
#es-faq .elementor-accordion-item{ border:0!important; border-top:1px solid var(--linea)!important; }
#es-faq .elementor-tab-title{ font-family:var(--ff-disp)!important; font-size:1.25rem!important; font-weight:600;
  color:var(--tinta)!important; padding:22px 0!important; }
#es-faq .elementor-tab-title.elementor-active{ color:var(--rojo)!important; }
#es-faq .elementor-tab-content{ font-family:var(--ff-body)!important; color:var(--tinta-60)!important;
  line-height:1.7; padding:0 0 22px!important; }

/* =========================================================================
   CTA  — tipografia enorme, aire
   ========================================================================= */
#es-cta{ background:linear-gradient(120deg,var(--rojo) 0%,var(--naranja) 100%); }
#es-cta > .e-con-inner{ padding-block:clamp(72px,10vw,130px); text-align:center; }
#es-cta .es-h2 .elementor-heading-title{ color:#fff; font-size:clamp(2.4rem,6vw,4.6rem)!important; }
#es-cta .es-sub p{ color:rgba(255,255,255,.9); max-width:620px; margin:16px auto 30px; }
body.page-id-11 #es-cta .es-btn .elementor-button{ background:#fff; color:var(--rojo); box-shadow:0 14px 30px -12px rgba(0,0,0,.35); }
body.page-id-11 #es-cta .es-btn .elementor-button:hover{ background:var(--crema); }

/* =========================================================================
   MOVIMIENTO  (reveals via .es-reveal -> .is-in, lo pone home.js)
   ========================================================================= */
.es-reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.es-reveal.is-in{ opacity:1; transform:none; }
.es-reveal.d1{ transition-delay:.08s } .es-reveal.d2{ transition-delay:.16s } .es-reveal.d3{ transition-delay:.24s }

@media(prefers-reduced-motion:reduce){
  .es-reveal{ opacity:1!important; transform:none!important; transition:none!important; }
}

/* =========================================================================
   RESPONSIVE  — reflow a 1 columna
   ========================================================================= */
@media(max-width:900px){
  #es-hero > .e-con-inner{ grid-template-columns:1fr; gap:40px; }
  #es-hero-media{ order:-1; }
  #es-hero-media img{ height:clamp(300px,70vw,420px); }
  #es-intro > .e-con-inner{ grid-template-columns:1fr; gap:26px; }
  #es-intro-side .es-h2 .elementor-heading-title{ position:static; }
  #es-centro > .e-con-inner{ grid-template-columns:1fr; }
}
