/* ============================================================================
   Base heredada de Divi, para Astra
   mgdigitalmadrid.es · 01-09-2026 · Sistemas Digitales MG

   POR QUE EXISTE ESTE ARCHIVO
   El sitio se diseno durante anos con el tema Divi. Divi arrancaba con un reset
   completo (margin:0;padding:0 en practicamente todas las etiquetas) y luego
   reponia el espaciado a su manera: los parrafos separaban con padding-bottom,
   no con margin-bottom, y los titulares con padding-bottom:10px y margin 0.
   Astra no hace nada de eso: deja los margenes del navegador y anade los suyos.
   Ademas Astra trae una capa de compatibilidad con Elementor que pisa los
   tamanos de Elementor con valores en rem (1.1428rem = 16px), y eso cambiaba
   botones, campos de formulario y etiquetas.

   Resultado al cambiar de tema: la misma pagina crecia entre un 2% y un 29%,
   los titulares se separaban del texto y los botones cambiaban de tamano. Este
   archivo devuelve EXACTAMENTE los valores que tenia el sitio con Divi.

   REGLA DE ORO PARA MANTENERLO
   Aqui solo van propiedades que se midieron distintas entre el antes y el
   despues, comparando la pagina real con la hoja de Divi 4.27.8 inyectada
   contra la pagina real con Astra. Nada de "ya que estoy, mejoro esto": cada
   linea de mas es una via para pisar sin querer un ajuste hecho desde
   Elementor. Los valores no estan inventados: los de Divi salen de su
   style-static.min.css 4.27.8 y los de Elementor de su frontend.min.css.

   ESPECIFICIDAD
   Astra usa selectores como `.elementor-widget-button .elementor-button` (0,2,0)
   y `body .elementor-button.elementor-size-sm` (0,2,1). Por eso aqui se usa
   `body .elementor-element ...`, que queda por encima de Astra pero POR DEBAJO
   de los ajustes por elemento que genera Elementor
   (`.elementor-104 .elementor-element.elementor-element-xxx .elementor-button`,
   (0,4,0)). Es importante que siga siendo asi: lo que Daniel toque desde
   Elementor tiene que seguir mandando sobre este archivo.

   NO SE APLICA en /home-premium/: esa pagina va sin CSS de tema a proposito.
   ========================================================================= */


/* --- 1. PARRAFOS ---------------------------------------------------------
   Divi:  p { padding-bottom: 1em }
          p:not(.has-background):last-of-type { padding-bottom: 0 }
   sobre un reset que dejaba margin:0.
   Astra: margin-bottom de 1.75em (24,5px con texto de 14px) y sin excepcion
   para el ultimo parrafo.

   La segunda regla es imprescindible y es facil pasarla por alto: casi todos
   los bloques de texto de Elementor tienen un solo parrafo, o sea que son
   "ultimo parrafo" y con Divi NO llevaban separacion inferior. Sin ella se
   cuelan 14px de mas en cada bloque de la web: la barra superior de la
   cabecera, por ejemplo, pasaba de 34px a 60px de alto. */
p {
	margin-bottom: 0;
	padding-bottom: 1em;
}

p:not(.has-background):last-of-type {
	padding-bottom: 0;
}

/* Astra aparta el contenido clasico y de Gutenberg con `.entry-content :where(p)`,
   que pesa (0,1,0) y por tanto gana a la etiqueta suelta de arriba. Afecta a las
   paginas que NO estan hechas con Elementor, como la politica de privacidad,
   que era la mas descuadrada de todas: crecia un 29%. */
.entry-content p {
	margin-bottom: 0;
}


/* --- 2. TITULARES --------------------------------------------------------
   Divi:  h1..h6 { color:#333; padding-bottom:10px; line-height:1em; font-weight:500 }
   con margin 0 heredado de su reset.
   Los tamanos (30/26/22/18/16/14) no se tocan aqui: ya estan puestos en los
   ajustes de Astra, que es donde deben estar para que el personalizador diga
   la verdad. Aqui solo va lo que Astra no permite configurar. */
h1, h2, h3, h4, h5, h6 {
	color: #333;
	margin-bottom: 0;
	padding-bottom: 10px;
	line-height: 1em;
	font-weight: 500;
}

/* Mismo caso que los parrafos: `.entry-content :where(h1..h6)` de Astra pesa
   mas que la etiqueta suelta. */
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
	margin-bottom: 0;
	padding-bottom: 10px;
}

/* El titulo que pinta el propio tema (no Elementor). Astra lo saca de su hoja
   con `header.entry-header .entry-title` a 32px/600 y no hay ningun ajuste en
   el personalizador que lo controle, asi que la unica via es esta. Con Divi
   este titulo era simplemente un h1 mas: 30px, interlineado 1em y peso 500. */
body header.entry-header .entry-title {
	font-size: 30px;
	line-height: 1em;
	font-weight: 500;
	margin-bottom: 0;
	padding-bottom: 10px;
}


/* --- 3. LISTAS Y FORMULARIOS COMO CONTENEDOR -----------------------------
   Estaban en el reset de Divi, asi que llegaban con margen a cero. Se limita a
   lo montado con Elementor para no tocar el contenido clasico, donde Divi si
   daba sangria a las listas con `.entry-content ul` y ahi ya coincide. */
form {
	margin-bottom: 0;
}

body .elementor-element ul,
body .elementor-element ol {
	margin-top: 0;
	margin-bottom: 0;
	margin-left: 0;
}


/* --- 4. CONTROLES DE FORMULARIO ------------------------------------------
   Divi no tocaba la tipografia de los controles: solo
   `button,input,select,textarea { font-family: inherit }`. El resto se quedaba
   en el valor del NAVEGADOR. Astra si los define, y por eso una casilla de
   verificacion pasaba de 13,33px a 14px y perdia su margen.

   CUIDADO: esto tiene que ir elemento por elemento, no en bloque. En la
   primera version puse `body button, body input, body select, body textarea`
   con `font: revert` y rompi los desplegables del formulario de contacto, que
   con Divi heredaban el tipo del cuerpo (14px) y pasaron a 15px. Solo se tocan
   los controles que se midieron distintos. */
body input[type="checkbox"],
body input[type="radio"] {
	font: revert;
	font-family: inherit;
	margin: 3px 3px 3px 4px;
}

/* Con Divi el boton conservaba el peso del navegador (400). Astra le pone 500
   a traves de la regla del cuerpo. */
body button {
	font-weight: revert;
}

/* Campos de texto. Divi:
   input[type=text],... { background-color:#fff; border:1px solid #bbb; padding:2px; color:#4e4e4e }
   textarea { padding:4px }
   El relleno de 2px le gana a Elementor (padding:5px 14px) por especificidad,
   igual que pasaba con Divi. Es apretado, pero es lo que habia. */
body input.text,
body input.title,
body input[type="email"],
body input[type="password"],
body input[type="tel"],
body input[type="text"],
body select,
body textarea {
	background-color: #fff;
	border: 1px solid #bbb;
	padding: 2px;
	color: #4e4e4e;
}

body textarea {
	padding: 4px;
}

/* Lo que ponia Elementor en sus campos y Astra sobrescribio con rem. Va con
   la etiqueta delante a proposito: el <select> del formulario NO entra aqui
   porque con Divi heredaba el tipo del cuerpo. */
body .elementor-element input.elementor-field-textual,
body .elementor-element textarea.elementor-field-textual {
	border-radius: 3px;
	font-size: 15px;
	line-height: 1.4;
}

/* Etiquetas: con Divi heredaban color e interlineado del cuerpo (#666 y 1.7em).
   Astra les pone el color de los titulares (#333) y 20px de interlineado. */
body label {
	color: inherit;
	line-height: inherit;
}


/* --- 5. BOTONES DE ELEMENTOR ---------------------------------------------
   Astra sustituye la escala de Elementor por un tamano unico en rem:
     .elementor-widget-button .elementor-button { font-size:1.1428571rem }
   que con html{font-size:87.5%} son 16px. Con Divi mandaba la escala propia de
   Elementor, que es la que se repone aqui, valor por valor, tal cual esta en
   su frontend.min.css. Solo se tocan las propiedades que Astra cambio
   (tamano, interlineado y relleno): el color, el borde y el redondeo se dejan
   en paz porque se midieron identicos. */
body .elementor-element .elementor-button {
	font-size: 15px;
	line-height: 1;
	padding: 12px 24px;
}

body .elementor-element .elementor-button.elementor-size-xs {
	font-size: 13px;
	padding: 10px 20px;
}

body .elementor-element .elementor-button.elementor-size-sm {
	font-size: 15px;
	padding: 12px 24px;
}

body .elementor-element .elementor-button.elementor-size-md {
	font-size: 16px;
	padding: 15px 30px;
}

body .elementor-element .elementor-button.elementor-size-lg {
	font-size: 18px;
	padding: 20px 40px;
}

body .elementor-element .elementor-button.elementor-size-xl {
	font-size: 20px;
	padding: 25px 50px;
}

/* El boton de enviar de los formularios es la excepcion: Elementor lo estira a
   lo alto del campo y le deja el relleno vertical a cero. Va despues de la
   escala de arriba para poder anularla. */
body .elementor-element .elementor-field-type-submit .elementor-button,
body .elementor-element .elementor-field-group .elementor-button {
	padding-top: 0;
	padding-bottom: 0;
}

/* ---------------------------------------------------------------------------
   ANCHO DE LA COLUMNA DE CONTENIDO
   ---------------------------------------------------------------------------
   Esto es lo gordo, y lo que hacia que "los titulos no se vieran igual".

   Con Divi el envoltorio del contenido iba a ancho completo (x=0, w=1440 a
   1440px de ventana). Astra lo mete en su contenedor: max-width 1240px, margen
   automatico de 100px a cada lado y 20px de relleno. Resultado: la columna
   pasa de 1440 a 1200 y TODO el texto se re-parte, los titulares rompen en
   otro sitio y las paginas crecen de alto.

   No es una suposicion: la captura del Divi real (REFERENCIA-divi.json) da
   5943 / 4982 / 3541 / 1252 / 2290 px de alto y la simulacion a ancho completo
   clava las cinco. Con el contenedor de Astra, /politica-privacidad/ se iba a
   2574 (+284) y /servicios/ a 5976 (+33).

   Se cualifica con #content para no tocar ningun otro .ast-container que
   Astra pueda sacar en otro sitio. La cabecera y el pie son plantillas de
   Elementor Pro, asi que no dependen de esto. */
#content .ast-container {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
}

/* Astra separa el area de contenido con `#primary{margin:4em 0}` (60px arriba y
   60px abajo) y la cabecera de entrada con `.entry-header{margin-bottom:1.5em}`
   (21px). Divi no ponia ninguno de los dos: su reset dejaba estos contenedores
   a cero y el aire lo daba el propio maquetador. Solo se nota en las paginas
   que usan la plantilla del tema, como /politica-privacidad/. */
#content #primary,
#content .content-area {
	margin-top: 0;
	margin-bottom: 0;
}

#content .entry-header {
	margin-bottom: 0;
}

/* Astra trae theme.json y eso hace que WordPress limite cada hijo directo del
   contenido a `contentSize` (1200px) y lo centre con margenes automaticos. Se
   ve en los parrafos de /politica-privacidad/: max-width 1200px y 120px de
   margen a cada lado, aunque el contenedor ya vaya a 1440.

   Divi no traia theme.json, asi que ese limite no existia y el contenido iba a
   ancho completo. Se anula solo dentro de #content para no tocar el editor. */
#content .entry-content > * {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}
