/**
 * Soul Feel — Typography normalization test
 *
 * Objetivos:
 * 1. Eliminar cambios inesperados serif/sans-serif.
 * 2. Crear fallbacks seguros.
 * 3. Homogeneizar la escala tipográfica.
 * 4. Mantener intactas las fuentes de iconos.
 * 5. Ser fácilmente reversible.
 */


/* ==========================================================
   1. TOKENS
   ========================================================== */

:root {
	--sf-font-sans:
		-apple-system,
		BlinkMacSystemFont,
		"Segoe UI",
		Roboto,
		Helvetica,
		Arial,
		"Noto Sans",
		sans-serif;

	--sf-font-size-body: 17px;

	--sf-font-size-small: 14px;
	--sf-font-size-menu: 16px;
	--sf-font-size-button: 15px;

	--sf-h1: clamp(2.5rem, 4vw, 4rem);
	--sf-h2: clamp(2rem, 3vw, 3rem);
	--sf-h3: clamp(1.5rem, 2vw, 2rem);
	--sf-h4: clamp(1.25rem, 1.25vw, 1.5rem);
	--sf-h5: 1.125rem;
	--sf-h6: 1rem;

	--sf-line-body: 1.65;
	--sf-line-heading: 1.15;
}


/* ==========================================================
   2. BASE
   Evita zoom/text autosizing diferente entre navegadores.
   ========================================================== */

html {
	font-size: 100%;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	font-family: var(--sf-font-sans) !important;
	font-size: var(--sf-font-size-body);
	line-height: var(--sf-line-body);
}


/* ==========================================================
   3. FUENTE GENERAL

   Importante:
   NO usamos * { font-family: ... }
   porque rompería Font Awesome, Elementor Icons, etc.
   ========================================================== */

body p,
body blockquote,
body address,
body ul,
body ol,
body li,
body table,
body th,
body td,
body label,
body input,
body textarea,
body select,
body button,
body .elementor-widget-text-editor,
body .elementor-widget-text-editor p,
body .elementor-button,
body .elementor-icon-list-text {
	font-family: var(--sf-font-sans) !important;
}


/* ==========================================================
   4. HEADINGS
   ========================================================== */

body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body .elementor-heading-title {
	font-family: var(--sf-font-sans) !important;
	line-height: var(--sf-line-heading);
}


/* La etiqueta HTML conserva la jerarquía.
   Así evitamos dar el mismo tamaño a todos los
   Elementor Heading widgets. */

body h1 {
	font-size: var(--sf-h1);
}

body h2 {
	font-size: var(--sf-h2);
}

body h3 {
	font-size: var(--sf-h3);
}

body h4 {
	font-size: var(--sf-h4);
}

body h5 {
	font-size: var(--sf-h5);
}

body h6 {
	font-size: var(--sf-h6);
}


/* ==========================================================
   5. COPY DEL HOME
   Homogeneización del contenido de lectura.

   Scope deliberadamente limitado al home.
   ========================================================== */

body.home .elementor-widget-text-editor,
body.home .elementor-widget-text-editor p,
body.home .elementor-widget-text-editor li {
	font-size: clamp(16px, 0.25vw + 15px, 18px) !important;
	line-height: 1.65 !important;
}


/* Textos/descripciones típicas de widgets */
body.home .elementor-icon-box-description,
body.home .elementor-image-box-description {
	font-family: var(--sf-font-sans) !important;
	font-size: clamp(16px, 0.2vw + 15px, 17px) !important;
	line-height: 1.6 !important;
}


/* ==========================================================
   6. MENÚ
   No imponemos tamaño al contenedor entero.
   ========================================================== */

body .navbar-nav > li > a,
body .main-menu li > a,
body .menu li > a {
	font-family: var(--sf-font-sans) !important;
}


/* Desktop */
@media (min-width: 992px) {

	body .navbar-nav > li > a,
	body .main-menu > li > a {
		font-size: var(--sf-font-size-menu) !important;
	}
}


/* ==========================================================
   7. BOTONES
   ========================================================== */

body button,
body input[type="button"],
body input[type="submit"],
body .btn,
body .elementor-button {
	font-family: var(--sf-font-sans) !important;
	font-size: var(--sf-font-size-button);
	line-height: 1.3;
}


/* ==========================================================
   8. SLIDER REVOLUTION

   Sólo corregimos font-family.
   NO tocamos font-size porque Revolution Slider suele
   calcularlo dinámicamente según viewport.
   ========================================================== */

body rs-layer,
body .rs-layer,
body .rev_slider,
body .rev_slider p,
body .rev_slider a {
	font-family: var(--sf-font-sans) !important;
}


/* ==========================================================
   9. MOBILE
   ========================================================== */

@media (max-width: 767px) {

	body {
		font-size: 16px;
		line-height: 1.65;
	}

	body.home .elementor-widget-text-editor,
	body.home .elementor-widget-text-editor p,
	body.home .elementor-widget-text-editor li {
		font-size: 16px !important;
		line-height: 1.65 !important;
	}

	body h1 {
		font-size: clamp(2.125rem, 9vw, 2.75rem);
	}

	body h2 {
		font-size: clamp(1.75rem, 7vw, 2.25rem);
	}

	body h3 {
		font-size: clamp(1.4rem, 5vw, 1.75rem);
	}

	body h4 {
		font-size: clamp(1.2rem, 4vw, 1.4rem);
	}
}


/* ==========================================================
   10. VERY SMALL DEVICES
   ========================================================== */

@media (max-width: 374px) {

	body {
		font-size: 16px;
	}

	body h1 {
		font-size: 2rem;
	}

	body h2 {
		font-size: 1.7rem;
	}
}