/* ===================================================================
   Capa PENNACCHIOTTI — migrada desde hello-elementor-child/pp.css
   el 2026-10-26 al activar Leroux. Los selectores de titular suben a
   `html body.elementor-kit-2116 ...` porque uploads/elementor/css/
   post-2116.css se carga DESPUÉS de esta hoja y, a igual especificidad,
   ganaba (h1 en #FFFFFF sobre marfil = 1:1).
   =================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;1,6..72,400&family=DM+Sans:wght@400;500&display=swap');

/* Tokens de DESIGN.md. Faltaban: pp.css usaba var(--font-display) y
   var(--heading) sin definirlas, así que el H1 de /sobre-mi/ y de las
   páginas editoriales caía en la fuente del kit (Mukta Vaani) y en el
   color de párrafo #6C6F73. Definirlas aquí repara esos usos. */
:root{
  --font-display:'Newsreader',Georgia,serif;
  --font-body:'DM Sans',system-ui,sans-serif;
  --heading:#20282D;
  --text:#263037;
  --muted:#586A70;
  --ivory:#FBFAF9;
  --ink:#223035;
  --gray:#EFEFEF;
  --sage:#D5DEDE;
}

/* pp.css — capa de estructura del sitio PENNACCHIOTTI
   Los tokens (color, tipografía) viven en el kit V4 de Elementor.
   Aquí solo se garantiza layout: apilado, rejilla, ritmo y móvil. */

.elementor .pp-band,.elementor .pp-wrap{
  display:flex!important;flex-direction:column!important;align-items:stretch!important;
  flex-wrap:nowrap!important;gap:0!important;
}
.elementor .pp-band{padding-block:112px!important;overflow:clip;}
.elementor .pp-wrap{width:100%;max-width:1240px;margin-inline:auto;padding-inline:32px;}
.elementor .pp-grid3{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:22px;}
.elementor .pp-grid2{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px 44px;}
.elementor .pp-grid3>*,.elementor .pp-grid2>*{min-width:0;}
.elementor .pp-cta-row{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;gap:12px!important;}

@media (max-width:1024px){
  .elementor .pp-band{padding-block:88px!important;}
  .elementor .pp-grid3{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .elementor .pp-grid2:has(form){grid-template-columns:1fr!important;gap:48px!important;}
}
@media (max-width:767px){
  .elementor .pp-band{padding-block:64px!important;}
  .elementor .pp-wrap{padding-inline:22px;}
  .elementor .pp-grid3,.elementor .pp-grid2{grid-template-columns:1fr!important;gap:0!important;}
  .elementor .pp-h1{font-size:clamp(32px,9vw,40px)!important;line-height:1.1!important;}
  .elementor .pp-h2{font-size:clamp(26px,7vw,32px)!important;line-height:1.16!important;}
  .elementor .pp-lead{font-size:16px!important;line-height:1.62!important;}
  .elementor .pp-cta{width:100%;}
  .elementor .pp-cta-row{flex-direction:column!important;gap:10px!important;}
}
/* --- cabecera demo fuera: solo muestra el logo de la plantilla, sin menú --- */
#site-header{display:none!important;}

/* --- hero: foto a sangre con velo de tinta --- */
.pp-band--ink:has(.pp-hero-img){
  background-image:
    linear-gradient(100deg, rgba(34,48,53,.97) 0%, rgba(34,48,53,.93) 40%, rgba(31,44,49,.64) 76%, rgba(28,40,45,.42) 100%),
    url("https://pennacchiotti.cl/wp-content/uploads/2026/10/hero-1600.jpg");
  background-size:cover;
  background-position:center 62%;
  background-repeat:no-repeat;
}
.pp-wrap:has(.pp-hero-img){display:grid!important;grid-template-columns:minmax(0,1fr)!important;
  gap:0!important;}
.pp-band--ink:has(.pp-hero-img) .pp-hero-img{display:none!important;}
.pp-wrap:has(.pp-hero-img) .pp-h1{max-width:19ch;}
.pp-wrap:has(.pp-hero-img) .pp-lead{max-width:56ch;}

/* --- figura de método --- */
.elementor .pp-figure img{display:block;width:100%;height:auto;max-height:520px;
  object-fit:cover;object-position:center 45%;}
@media (max-width:900px){
  .elementor .pp-figure img{max-height:300px;}
}
/* --- botones: fila horizontal y alto natural (estaban estirados a 110px) --- */
/* contenedor de los CTA del hero: fila, bajo el texto */
[data-id="63deb5ba"]{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;
  align-items:center!important;justify-content:flex-start!important;gap:16px!important;
  width:100%!important;height:auto!important;margin-top:8px!important;}
/* columna del hero: texto y luego botones */
[data-id="118ee167"]{flex-direction:column!important;align-items:flex-start!important;}
.elementor .pp-cta{height:auto!important;min-height:52px!important;flex:0 0 auto!important;
  align-self:center!important;box-sizing:border-box;}
@media (max-width:600px){
  [data-id="63deb5ba"]{width:100%!important;}
  [data-id="63deb5ba"] .pp-cta{flex:1 1 auto!important;justify-content:center!important;}
}

/* --- páginas editoriales: Perspectivas y artículos --- */
body.page-id-13 .entry-title{display:none!important;}
body.page-id-13 .site-main{max-width:780px!important;margin-inline:auto!important;padding:84px 28px 104px!important;}
body.single .site-main{max-width:none!important;padding:0!important;}
body.page-id-13 .entry-content,body.single .entry-content{
  max-width:760px;margin-inline:auto;padding:104px 28px 96px;}
body.page-id-13 .entry-content>*:first-child,body.single .entry-content>*:first-child{margin-top:0;}
.pp-eyebrow{font-family:"DM Sans",system-ui,sans-serif;font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;color:#85979B;margin:0 0 26px;}
.pp-h1,body.single .entry-title{font-family:Newsreader,Georgia,serif;font-weight:400;
  font-size:clamp(34px,4.4vw,56px);line-height:1.1;color:#20282D;margin:0 0 24px;max-width:24ch;}
.pp-lead{font-family:"DM Sans",system-ui,sans-serif;font-size:19px;line-height:1.62;
  color:#263037;max-width:60ch;margin:0 0 46px;}
body.page-id-13 h2,body.single h2{font-family:Newsreader,Georgia,serif;font-weight:400;
  font-size:clamp(26px,2.6vw,32px);line-height:1.24;color:#20282D;margin:52px 0 14px;}
body.page-id-13 p,body.single p,body.page-id-13 li,body.single li{
  font-family:"DM Sans",system-ui,sans-serif;font-size:17px;line-height:1.72;color:#263037;margin:0 0 22px;}
body.single .entry-content{max-width:760px;}


/* ============================================================
   2026-10-23 · cierre de defectos de Fase 0
   ============================================================ */

/* 1. Título del tema fuera: deja un solo H1 por página (semántico, no solo visual) */
body.page-id-12 .entry-title,
body.page-id-13 .entry-title { display: none !important; }

/* 2. Footer heredado del kit: se oculta mientras no exista footer propio.
      Elimina "© 2023 eramic" y el logo demo del pie. */
footer.site-footer,
footer#site-footer,
.site-footer .site-description,
.site-footer .copyright,
.site-footer img[src*="logo-retina"] { display: none !important; }

/* 3. Contraste: #85979B daba 2,92:1 sobre marfil. #586A70 da 5,43:1 (AA). */
.pp-eyebrow,
.pp-muted,
.pp-lead--muted { color: #586A70 !important; }

/* ============================================================
   2026-10-24 · un solo H1 en las páginas construidas en Elementor
   El tema imprime el título de la página como H1 y además cada página
   declara el suyo. Se retira el del tema en las páginas afectadas.
   ============================================================ */
body.page-id-14 .entry-title,
body.page-id-1933 .entry-title,
body.page-id-2076 .entry-title,
body.page-id-2106 .entry-title { display: none !important; }

/* ============================================================
   2026-10-24 · sistema editorial de páginas internas
   Las páginas de contenido no tenían contenedor: el H1 caía al
   borde y los párrafos corrían a todo el ancho. Aquí se fija un
   ancho de lectura y un ritmo vertical únicos.
   ============================================================ */

body.page-id-12 .site-main,
body.page-id-13 .site-main {
  max-width: 780px;
  margin: 0 auto;
  padding: 84px 24px 104px;
}

body.page-id-12 h1,
body.page-id-13 h1 {
  font-family: var(--font-display);
  font-size: 46px;
  line-height: 1.06;
  letter-spacing: -0.02em;
  font-weight: 400;
  color: var(--heading);
  margin: 0 0 22px;
}

body.page-id-12 h2,
body.page-id-13 h2 {
  font-family: var(--font-display);
  font-size: 27px;
  line-height: 1.25;
  font-weight: 400;
  color: var(--heading);
  margin: 52px 0 12px;
}

body.page-id-12 p,
body.page-id-13 p {
  font-size: 17px;
  line-height: 1.75;
  color: #263037;
  max-width: 68ch;
  margin: 0 0 18px;
}

/* Ancho de lectura donde Elementor no lo fijó (soluciones, privacidad). */
body.page-id-2076 main p,
body.page-id-2106 main p {
  max-width: 72ch;
}

/* Etiqueta de sección */
.pp-label {
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #8B5E3C;
  margin: 0 0 14px;
}

/* Entradilla */
.pp-lead {
  font-size: 19px !important;
  line-height: 1.6 !important;
  color: #3A4A50 !important;
  max-width: 60ch;
  margin: 0 0 40px !important;
}

/* Línea de tiempo: eje, hitos y numeración */
.pp-tl {
  margin: 36px 0 0;
  border-left: 1px solid rgba(34, 48, 53, 0.18);
  padding-left: 30px;
}

.pp-tl-item {
  position: relative;
  padding: 0 0 36px;
}

.pp-tl-item::before {
  content: "";
  position: absolute;
  left: -36px;
  top: 7px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #FBFAF9;
  border: 1px solid #8B5E3C;
}

.pp-tl-n {
  font-size: 12px !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #8B5E3C !important;
  margin: 0 0 6px !important;
}

.pp-tl-item p:last-child {
  margin-bottom: 0;
}

.pp-note {
  margin-top: 44px !important;
  padding-top: 20px;
  border-top: 1px solid rgba(34, 48, 53, 0.18);
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: #586A70 !important;
}

@media (max-width: 767px) {
  body.page-id-12 .site-main,
  body.page-id-13 .site-main { padding: 48px 20px 64px; }
  body.page-id-12 h1,
  body.page-id-13 h1 { font-size: 34px; }
  body.page-id-12 h2,
  body.page-id-13 h2 { font-size: 23px; margin-top: 40px; }
  .pp-tl { padding-left: 22px; }
  .pp-tl-item::before { left: -28px; }
}

/* 2026-10-24 · corrección de contenedor: en Perspectivas el wrapper real
   no es .site-main, así que el ancho de lectura quedaba en 884 px. */
body.page-id-12 .entry-content,
body.page-id-13 .entry-content,
body.page-id-12 .wp-block-post-content,
body.page-id-13 .wp-block-post-content,
body.page-id-12 main > article,
body.page-id-13 main > article {
  max-width: 780px;
  margin-left: auto;
  margin-right: auto;
}

/* Privacidad: el texto legal estaba a 15 px, bajo el mínimo legible. */
body.page-id-2106 main p {
  font-size: 17px;
  line-height: 1.75;
}

/* 2026-10-24 · el CSS de Elementor gana por especificidad: se fuerza donde
   el texto legal salía a 15 px y donde la línea de soluciones superaba 800 px. */
body.page-id-2106 main p { font-size: 17px !important; line-height: 1.75 !important; }
body.page-id-2076 main p { max-width: 720px !important; }

/* 2026-10-24 · Privacidad: la columna legal quedaba pegada a la izquierda con
   media pantalla vacía. Se centra la columna de lectura. */
body.page-id-2106 main h1,
body.page-id-2106 main h2,
body.page-id-2106 main p {
  max-width: 720px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ============================================================
   Identidad personal · 2026-10-26
   Retrato (attachment 2200) en marfil, monograma MP (2201/2202)
   como icono del sitio. El retrato es 200×200: se muestra a
   96 px como máximo para no perder nitidez en pantallas 2×.
   ============================================================ */
body.page-id-12 .site-main::before,
body.page-id-14 .site-main::before {
  content: "";
  display: block;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: url("https://pennacchiotti.cl/wp-content/uploads/pp/mario-pennacchiotti.png") center/cover no-repeat;
  box-shadow: 0 0 0 1px #D5DEDE, 0 0 0 7px #FBFAF9;
  margin: 0 0 30px;
}

/* El retrato ya carga la identidad: el H1 no necesita el aire superior. */
body.page-id-12 .site-main::before {
  margin-top: -6px;
}

/* ============================================================
   2026-10-26 · capa tipográfica de titulares (páginas V4)
   El kit 2116 venía de la plantilla demo: h1 en #FFFFFF sobre
   marfil #FBFAF9 (1,04:1, medido) a 75 px en Mukta Vaani, y
   h2 a 54 px en la misma familia. Los tokens de DESIGN.md
   existían pero ninguna regla los aplicaba al árbol V4, así que
   DM Sans y Newsreader se importaban y nunca se usaban.
   Aquí se fija lo que DESIGN.md §Tokens-tipografía ya declara:
   display 56/60, h2 42/50, h3 26/34. El color de titulares pasa
   de blanco/inventado a #20282D (14,36:1 sobre marfil).
   Alcance: solo titulares. El color de párrafo (#6C6F73 que
   hereda del kit) queda como deuda registrada, no se toca aquí.
   ============================================================ */
html body.elementor-kit-2116 h1 {
  font-family: Newsreader, Georgia, serif;
  font-size: 56px;
  line-height: 1.07;
  font-weight: 400;
  letter-spacing: -0.015em;
  color: #20282D;
}
html body.elementor-kit-2116 h2 {
  font-family: Newsreader, Georgia, serif;
  font-size: 42px;
  line-height: 1.19;
  font-weight: 400;
  letter-spacing: -0.01em;
  color: #20282D;
}
html body.elementor-kit-2116 h3 {
  font-family: "DM Sans", system-ui, sans-serif;
  font-size: 26px;
  line-height: 1.31;
  font-weight: 500;
  letter-spacing: 0;
  color: #20282D;
}
/* 768–1023: tipografía −10 % (DESIGN.md §Responsive) */
@media (max-width: 1023px) {
  html body.elementor-kit-2116 h1 { font-size: 50px; }
  html body.elementor-kit-2116 h2 { font-size: 38px; }
  html body.elementor-kit-2116 h3 { font-size: 23px; }
}
/* 390–767: H1 ≤ 40 px */
@media (max-width: 767px) {
  html body.elementor-kit-2116 h1 { font-size: 40px; line-height: 1.1; }
  html body.elementor-kit-2116 h2 { font-size: 32px; line-height: 1.2; }
  html body.elementor-kit-2116 h3 { font-size: 22px; line-height: 1.3; }
}

/* 2026-10-26 · alineación de la banda fotográfica con la rejilla de texto */
@media (min-width: 768px) {
  /* la clase atómica del propio elemento fija max-width:100%; se acota solo esta banda */
  body [data-id="687bf08f"] { max-width: 1180px !important; margin-left: auto !important; margin-right: auto !important; }
  body [data-id="7d50628a"] { align-self: stretch; }
  body [data-id="7d50628a"] img { height: 100%; object-fit: cover; }
}

/* 2026-10-26 · Leroux activa una banda de título de página (.qodef-page-title)
   que en este sitio queda vacía —Elementor oculta el title— y solo aporta
   240 px de aire muerto antes del contenido en las 5 rutas medidas. */
.qodef-page-title { display: none; }

/* 2026-10-26 · marco del sitio: fondo, logo y carruseles */
html body.elementor-kit-2116,
html body { background-color: #FBFAF9; }

/* el wordmark va a 2x (977×71) y se muestra a 244 px de ancho */
.qodef-header-logo-link .qodef-header-logo-image { width: 244px; height: auto; display: block; }

/* los carruseles del tema dejan los slides fuera del viewport: sin recorte
   el documento ganaba 1.425 px de scroll horizontal */
.qodef-swiper-container, .swiper, .swiper-container,
.qodef-m-thumbnails, .qodef-m-thumbnail-slider,
.qodef-image-gallery, .qodef-slider { overflow: hidden; }

/* 2026-10-26 · cabecera: el tema trae 150 px de margen por ítem (demo) y el
   logo a 447 px. Con 5 ítems el menú medía 1.828 px y desbordaba 336 px. */
#qodef-page-header .qodef-header-navigation > ul > li { margin-left: 16px !important; margin-right: 16px !important; }
#qodef-page-header .qodef-header-logo-image { width: 244px !important; height: auto !important; }
#qodef-page-header .qodef-header-logo-link { width: 244px; }

/* 2026-10-26 · pie oscuro: el texto heredaba #6C6F73 (2,2:1 sobre #263037) */
#qodef-page-footer-top-area,
#qodef-page-footer-top-area p,
#qodef-page-footer-top-area .qodef-widget-title { color: #EFEFEF; }
#qodef-page-footer-top-area a { color: #EFEFEF; }
#qodef-page-footer-top-area a:hover { color: #D5DEDE; }
#qodef-page-footer-top-area .qodef-widget-title { letter-spacing: 0.08em; text-transform: uppercase; font-size: 13px; color: #D5DEDE; }

/* 2026-10-26 · contraste AA: #6C6F73 daba 3,69:1 sobre las bandas salvia
   (#D5DEDE) y 2,67:1 sobre el pie. #575B5F da 5,1:1 sobre salvia y 7,9:1
   sobre el fondo de página. */
main p, main li, .qodef-m-text { color: #575B5F; }
#qodef-page-footer-top-area p,
#qodef-page-footer-top-area p *,
#qodef-page-footer-top-area li,
#qodef-page-footer-top-area .textwidget { color: #EFEFEF; }

/* 2026-10-26 · cabecera editorial: el contenido ya no pasa por debajo,
   el menú respira y una línea de 1 px separa la barra del contenido. */
#qodef-page-header { background-color: #FBFAF9; }
#qodef-page-header-inner { border-bottom: 1px solid rgba(32,40,45,0.10); }
#qodef-page-header .qodef-header-navigation > ul > li { margin-left: 22px !important; margin-right: 22px !important; }
#qodef-page-header .qodef-header-navigation > ul > li > a { letter-spacing: 0.02em; font-weight: 500; }
#qodef-page-header .qodef-header-navigation > ul > li > a:hover,
#qodef-page-header .qodef-header-navigation > ul > li.current-menu-item > a { color: #20282D; }
#qodef-header-sticky { background-color: #FBFAF9; }

/* 2026-10-26 · CTA en la cabecera (el demo usa una píldora "Get in touch") */
#qodef-page-header .qodef-header-navigation > ul > li:last-child { margin-right: 0 !important; }
#qodef-page-header .qodef-header-navigation > ul > li:last-child > a {
  background-color: #20282D; color: #FBFAF9 !important;
  border-radius: 25px; padding: 10px 26px; font-size: 14px; font-weight: 500;
  line-height: 1.2; display: inline-block; transition: background-color .25s ease;
}
#qodef-page-header .qodef-header-navigation > ul > li:last-child > a:hover { background-color: #263037; color: #FBFAF9 !important; }
#qodef-page-header .qodef-header-logo-image { width: 260px !important; }

/* 2026-10-26 · la píldora heredaba el alto completo del ítem (95 px) */
#qodef-page-header .qodef-header-navigation > ul > li:last-child { display: flex; align-items: center; }
#qodef-page-header .qodef-header-navigation > ul > li:last-child > a {
  display: inline-flex; align-items: center; height: auto !important; line-height: 1.2 !important;
  padding: 12px 26px !important;
}

/* ===================================================================
   2026-10-26 · SITIO OSCURO
   Fondo #223035 (42 usos en el CSS del tema), bandas #263037 (53 usos),
   texto blando #EFEFEF, titulares #FBFAF9. Sustituye el esquema claro.
   =================================================================== */
html body, body.elementor-kit-2116 { background-color: #223035 !important; color: #EFEFEF; }
#qodef-page, #qodef-page-outer, #qodef-page-inner, .qodef-wrapper, .qodef-content { background-color: transparent; }
h1, h2, h3, h4, h5, h6,
.qodef-section-title, .qodef-m-title, .qodef-e-title,
.elementor-heading-title, .elementor-widget-heading .elementor-heading-title { color: #FBFAF9; }
main p, main li, main span, main div,
.qodef-m-text, .qodef-e-text, .elementor-widget-text-editor,
.elementor-widget-text-editor p { color: #D9DEDE; }
main a:not(.qodef-button):not([class*="button"]) { color: #FBFAF9; }
main blockquote, main em { color: #EFEFEF; }
hr, .qodef-separator, .elementor-divider-separator { border-color: rgba(239,239,239,0.16); }

/* cabecera */
#qodef-page-header, #qodef-page-header-inner, #qodef-header-sticky,
#qodef-header-sticky .qodef-header-sticky-inner { background-color: #223035 !important; }
#qodef-page-header-inner { border-bottom: 1px solid rgba(239,239,239,0.14); }
#qodef-page-header .qodef-header-navigation > ul > li > a,
#qodef-header-sticky .qodef-header-navigation > ul > li > a { color: #EFEFEF !important; }
#qodef-page-header .qodef-header-navigation > ul > li > a:hover,
#qodef-header-sticky .qodef-header-navigation > ul > li > a:hover { color: #FBFAF9 !important; }
/* la píldora pasa a claro sobre oscuro */
#qodef-page-header .qodef-header-navigation > ul > li:last-child > a,
#qodef-header-sticky .qodef-header-navigation > ul > li:last-child > a {
  background-color: #EFEFEF !important; color: #223035 !important;
}
#qodef-page-header .qodef-header-navigation > ul > li:last-child > a:hover,
#qodef-header-sticky .qodef-header-navigation > ul > li:last-child > a:hover {
  background-color: #FBFAF9 !important; color: #223035 !important;
}
/* menú móvil y desplegables */
#qodef-mobile-header, #qodef-mobile-header--sticky-wrapper,
.qodef-mobile-header-navigation, .qodef-drop-down-second, .qodef-drop-down-second-inner,
.qodef-drop-down-second-inner ul { background-color: #223035; }
.qodef-mobile-header-navigation a, .qodef-drop-down-second a { color: #EFEFEF; }

/* pie */
#qodef-page-footer, #qodef-page-footer-top-area, #qodef-page-footer-bottom-area { background-color: #263037; }
#qodef-page-footer a, #qodef-page-footer p, #qodef-page-footer .qodef-widget-title { color: #EFEFEF; }

/* formularios, buscador, desplegables nativos */
input, textarea, select, .qodef-search-form-inner {
  background-color: #263037; border-color: rgba(239,239,239,0.18); color: #EFEFEF;
}
input::placeholder, textarea::placeholder { color: #A9B3B4; }
.qodef-search-form-inner svg, .qodef-search-form-inner path { fill: #EFEFEF; stroke: #EFEFEF; }

/* botones del tema y de Elementor */
.qodef-button.qodef-layout--filled, .elementor-button {
  background-color: #EFEFEF; color: #223035; border-color: #EFEFEF;
}
.qodef-button.qodef-layout--filled:hover, .elementor-button:hover {
  background-color: #FBFAF9; color: #223035;
}
.qodef-button.qodef-layout--outlined { color: #EFEFEF; border-color: rgba(239,239,239,0.4); }

/* 2026-10-26 · titulares del tema: el color venía de reglas con más peso
   (.qodef-section-title .qodef-m-title) y quedaba #263037 sobre #263037. */
.qodef-section-title .qodef-m-title, .qodef-section-title .qodef-m-title *,
.qodef-e-title, .qodef-e-title a, .qodef-e-title *,
.qodef-m-title, .qodef-widget-title,
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-heading .elementor-heading-title *,
main h1, main h2, main h3, main h4, main h5, main h6 { color: #FBFAF9 !important; }
.qodef-e-subtitle, .qodef-m-subtitle, .qodef-e-label, .qodef-e-info,
main .qodef-e-info a, .elementor-widget-text-editor .qodef-e-label { color: #A9B3B4 !important; }

/* 2026-10-26 · datos de contacto del bloque info_section seguían en #20282D */
main .qodef-e-text, main .qodef-info-section .qodef-e-text,
main .qodef-e-text *, .qodef-info-section .qodef-e-text { color: #D9DEDE !important; }
main .qodef-info-section a, main .qodef-e-text a { color: #FBFAF9 !important; }

/* 2026-10-26 · cierre del tema oscuro: párrafos de Elementor, info_section
   y botón de envío del formulario. */
main .elementor-widget-text-editor,
main .elementor-widget-text-editor p,
main .elementor-widget-text-editor li,
main .elementor-widget-text-editor span { color: #D9DEDE !important; }
main .qodef-info-section, main .qodef-info-section *:not(a),
main .qodef-e-text, main .qodef-e-text * { color: #D9DEDE !important; }
main .qodef-info-section a { color: #FBFAF9 !important; }
input[type="submit"], button[type="submit"], .wpcf7 input[type="submit"],
.qodef-newsletter-form button, .qodef-contact-form button {
  background-color: #EFEFEF !important; color: #223035 !important; border-color: #EFEFEF !important;
}

/* 2026-10-26 · enlaces con color en línea (#20282D) dentro de los bloques
   de contacto y botón de envío del formulario */
main .textwidget a, main a.qodef-link--underline,
main .elementor-widget-text-editor a { color: #FBFAF9 !important; }
main .wpcf7-submit, .wpcf7 .wpcf7-submit, main button.wpcf7-submit {
  background-color: #EFEFEF !important; color: #223035 !important; border-color: #EFEFEF !important;
}

/* 2026-10-26 · cualquier botón claro sobre el fondo oscuro */
main button:not([class*="qodef-swiper"]):not([class*="arrow"]),
main input[type="submit"],
main .qodef-button { background-color: #EFEFEF !important; color: #223035 !important; border-color: #EFEFEF !important; }
main .qodef-button.qodef-layout--outlined { background-color: transparent !important; color: #EFEFEF !important; border-color: rgba(239,239,239,0.4) !important; }

/* 2026-10-26 · texto interno de los botones claros (View More / Read More) */
main .qodef-button, main .qodef-button *,
main .qodef-button .qodef-m-text, main .qodef-button span {
  color: #223035 !important;
}
main .qodef-button.qodef-layout--outlined, main .qodef-button.qodef-layout--outlined * { color: #EFEFEF !important; }

/* 2026-10-27 · portada: se ocultan sólo los bloques que imprimen datos del demo
   (cifras inventadas, gráficos y listas sin entradas). Nada se elimina del árbol:
   quitar estas líneas devuelve los bloques tal cual. */
.elementor-element-03fd425, .elementor-element-22361cb, .elementor-element-3865ff6, /* barras % demo */
.elementor-element-854241a,                                                          /* gráfico demo */
.elementor-element-59cb989, .elementor-element-2ecf9c9,                              /* contadores 310+ / 850K+ */
.elementor-element-fe5d8f3,                                                          /* vídeo demo */
.elementor-element-cbe3b83,                                                          /* testimonios vacíos */
.elementor-element-7334827,                                                          /* equipo vacío */
.elementor-element-8aae047                                                           /* sección de blog sin entradas */
{ display: none !important; }

/* 2026-10-27 · el margen negativo del demo (-5px) hacía que el botón se montara
   sobre el titular cuando el titular ocupa una sola línea */
main .elementor-element-2ba8b1b .qodef-m-title { margin-bottom: 14px !important; }
main .elementor-element-2ba8b1b { margin-bottom: 0 !important; }

/* 2026-10-27 · al ocultar su único contenido, estas dos section quedaban como
   bandas vacías de 737 y 605 px: se ocultan enteras */
.elementor-element-8592d43, .elementor-element-f65eb2f { display: none !important; }

/* 2026-10-27 · la banda de "Digital e IA" conservaba 900 px de alto fijo del demo
   con dos columnas vacías: se deja que tome el alto de su contenido */
main .elementor-element-abe3d9b { height: auto !important; min-height: 0 !important; }

/* la regla generada por Elementor (.elementor-335 .elementor-element-abe3d9b)
   gana por especificidad: se sube la del hijo para anular los 900 px fijos */
main .elementor-335 .elementor-element.elementor-element-abe3d9b,
html body main section.elementor-element-abe3d9b { height: auto !important; min-height: 0 !important; }

/* el alto de 900 px de la banda de "Digital e IA" lo imponía un espaciador
   decorativo de 900 px; se anula para que la banda mida lo que mide su texto */
.elementor-element-9b44d6b { display: none !important; }

/* 2026-10-27 · páginas: medida de lectura. El tema servía el cuerpo a 1300 px
   y 15 px de cuerpo; en una página de texto eso no se lee.
   OJO: la portada de Elementor vive dentro del MISMO contenedor
   (.qodef-page-content-section), así que la regla se limita a las páginas que no
   son de Elementor; si no, encoge la portada entera a 780 px. */
body:not(.elementor-page) .qodef-page-content-section { max-width: 780px; }
body:not(.elementor-page) .qodef-page-content-section p,
body:not(.elementor-page) .qodef-page-content-section li { font-size: 18px; line-height: 1.75; color: #D9DEDE; }
body:not(.elementor-page) .qodef-page-content-section h2 { font-size: 30px; line-height: 1.25; margin: 46px 0 14px; color: #FBFAF9; }
body:not(.elementor-page) .qodef-page-content-section ul { padding-left: 22px; }
body:not(.elementor-page) .qodef-page-content-section li { margin-bottom: 10px; }
body:not(.elementor-page) .qodef-page-content-section a { color: #FBFAF9; text-decoration: underline; text-underline-offset: 3px; }

/* 2026-10-27 · las tres cifras de la portada. El contador del tema pinta el número
   por JS al entrar en pantalla y deja el <span> vacío si el script no corre
   (medido: 5 de 5 spans con 0 px y sin texto). Se imprime el número por CSS para
   que la evidencia se vea siempre; si el JS sí corre, :empty deja de aplicar. */
.elementor-element-af97832  .qodef-m-digit:empty::after { content: "350+"; }
.elementor-element-c40org01 .qodef-m-digit:empty::after { content: "40+"; }
.elementor-element-c5pais01 .qodef-m-digit:empty::after { content: "5"; }
.elementor-element-af97832  .qodef-m-digit,
.elementor-element-c40org01 .qodef-m-digit,
.elementor-element-c5pais01 .qodef-m-digit { display: inline-block; line-height: 1.08; }
