/* Estufas Bajo Consumo · base
   Estilos de página. Se apoya en tokens.css. Elementor (Ajustes del sitio) aplica lo mismo
   a sus widgets tras pulsar "Aplicar a Elementor" en Apariencia > Design system. */

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

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: 1.55;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  color: var(--ink);
  margin: 0 0 var(--space-4);
}
h1 { font-size: var(--fs-display-xl); font-weight: 700; line-height: 0.98; letter-spacing: -0.035em; }
h2 { font-size: var(--fs-display-l); font-weight: 700; line-height: 1.02; letter-spacing: -0.03em; }
h3 { font-size: var(--fs-heading-l); font-weight: 600; line-height: 1.05; letter-spacing: -0.02em; }
h4 { font-size: var(--fs-heading-m); font-weight: 600; line-height: 1.1; letter-spacing: -0.02em; }
h5 { font-size: var(--fs-heading-s); font-weight: 600; line-height: 1.2; letter-spacing: -0.01em; }
h6 { font-family: var(--font-sans); font-size: var(--fs-caption); font-weight: 600; line-height: 1.4; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-muted); }

p { margin: 0 0 var(--space-4); }

a { color: var(--ink); text-underline-offset: 3px; text-decoration-thickness: 1px; transition: color var(--duration-fast) var(--ease-standard); }
a:hover { color: var(--ink-muted); }

:focus-visible { outline: 2px solid var(--ember); outline-offset: 3px; }
::selection { background: var(--ember); color: var(--on-ember); }

img { max-width: 100%; height: auto; }

/* Clases de texto (ponlas en "Clases CSS" de cualquier widget) */
:is(.ebc-display-xl, body .ebc-display-xl .elementor-heading-title) { font-family: var(--font-display); font-size: var(--fs-display-xl); font-weight: 700; line-height: 0.98; letter-spacing: -0.035em; }
:is(.ebc-display-l, body .ebc-display-l .elementor-heading-title) { font-family: var(--font-display); font-size: var(--fs-display-l); font-weight: 700; line-height: 1.02; letter-spacing: -0.03em; }
:is(.ebc-heading-l, body .ebc-heading-l .elementor-heading-title) { font-family: var(--font-display); font-size: var(--fs-heading-l); font-weight: 600; line-height: 1.05; letter-spacing: -0.02em; }
:is(.ebc-heading-m, body .ebc-heading-m .elementor-heading-title) { font-family: var(--font-display); font-size: var(--fs-heading-m); font-weight: 600; line-height: 1.1; letter-spacing: -0.02em; }
:is(.ebc-heading-s, body .ebc-heading-s .elementor-heading-title) { font-family: var(--font-display); font-size: var(--fs-heading-s); font-weight: 600; line-height: 1.2; letter-spacing: -0.01em; }
:is(.ebc-lead, .ebc-lead p) { font-size: var(--fs-lead); line-height: 1.55; color: var(--ink-muted); max-width: 46ch; }
:is(.ebc-small, .ebc-small p) { font-size: var(--fs-small); line-height: 1.5; }
:is(.ebc-caption, .ebc-caption p) { font-size: var(--fs-caption); line-height: 1.45; color: var(--ink-muted); }
:is(.ebc-overline, body .ebc-overline .elementor-heading-title) { font-family: var(--font-sans); font-size: var(--fs-caption); font-weight: 600; line-height: 1.4; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-muted); }
:is(.ebc-num, body .ebc-num .elementor-heading-title) { font-family: var(--font-mono); font-weight: 500; font-variant-numeric: tabular-nums; }
.ebc-accent { color: var(--ember); }
.ebc-muted { color: var(--ink-muted); }

/* Layout */
.ebc-wrap { max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); box-sizing: border-box; }
.ebc-section { padding-block: var(--section-y); }
.ebc-surface { background: var(--surface); border-block: var(--border-hairline) solid var(--line); }
.ebc-rule-top { border-top: var(--border-hairline) solid var(--line); }

/* Accesibilidad */
.ebc-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Texto solo para lectores de pantalla (clase estándar de WordPress) */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { position: static !important; width: auto; height: auto; margin: 0; clip: auto; overflow: visible; }
