/* Base: reinicio, tipografía y elementos del tema (equivalente al tema Divi personalizado de la original). */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background-color: var(--color-crema);
  color: var(--color-texto);
  font-family: var(--fuente);
  font-size: var(--texto-base);
  font-weight: var(--peso-normal);
  line-height: var(--interlineado);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, video, iframe { max-width: 100%; }
img { height: auto; vertical-align: middle; border: 0; }

a { color: var(--color-rojo); text-decoration: none; }
a:hover { text-decoration: none; }

p { margin: 0; padding-bottom: 1em; }
p:not(.has-background):last-of-type { padding-bottom: 0; }

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  padding-bottom: 10px;
  color: var(--color-titulos);
  font-weight: var(--peso-normal);
  line-height: var(--titulo-interlineado);
}
h1 { font-size: var(--h1); }
h2 { font-size: var(--h2); }
h3 { font-size: var(--h3); }
h4 { font-size: var(--h4); }
h5 { font-size: var(--h5); }
h6 { font-size: var(--h6); }

strong, b { font-weight: var(--peso-negrita); }

blockquote {
  margin: 20px 0 30px;
  padding-left: 20px;
  border-left: 5px solid var(--color-rojo);
}
blockquote p { padding-bottom: 0; }

ul, ol { margin: 0; }
hr { border: 0; border-top: 1px solid rgba(0, 0, 0, .1); margin: 0 0 1em; }
figure { margin: 0; }
table { border-collapse: collapse; width: 100%; margin-bottom: 1em; }
td, th { padding: 6px 24px; border-top: 1px solid #eee; text-align: left; }

button { font: inherit; color: inherit; cursor: pointer; }

/* Contenedor general (80 %, como .container de Divi) */
.contenedor { width: 80%; max-width: var(--fila-max); margin: 0 auto; position: relative; }

.pagina { position: relative; overflow-x: clip; }

/* Accesibilidad [NUEVO] */
.saltar {
  position: absolute; left: -9999px; top: 0; z-index: 1000000;
  background: var(--color-crema); color: var(--color-titulos); padding: 8px 16px;
}
.saltar:focus { left: 8px; top: 8px; }
:focus-visible { outline: 2px solid var(--color-rojo); outline-offset: 2px; }

/* Iconos SVG en línea */
.icono { width: 1em; height: 1em; display: inline-block; vertical-align: middle; flex: none; }

/* Imagen ausente: hueco gris con la proporción de la original [NUEVO] */
.img-hueco { display: block; width: 100%; aspect-ratio: 16 / 9; background: var(--color-hueco); }

/* Páginas de contenido clásico (sin constructor) */
.clasico { padding: 58px 0 50px; }
.clasico ul, .clasico ol { padding: 0 0 23px 1em; line-height: 26px; }
.clasico ul { list-style-type: disc; }

/* Volver arriba (Divi: .et_pb_scroll_top) */
.volver-arriba {
  position: fixed; right: 0; bottom: 125px; z-index: 99999;
  padding: 5px; border: 0; border-radius: 5px 0 0 5px;
  background: rgba(0, 0, 0, .4); color: #fff; font-size: 30px; line-height: 0;
  opacity: 0; transition: opacity .4s;
}
.volver-arriba.visible { opacity: 1; }

@media only screen and (max-width: 980px) {
  h1 { font-size: 26px; }
  h2 { font-size: 22px; }
  h3 { font-size: 18px; }
  h4 { font-size: 15px; }
  h5 { font-size: 13px; }
  h6 { font-size: 12px; }
}

@media only screen and (max-width: 767px) {
  body { font-size: 10px; }
  h1 { font-size: 22px; }
  h2 { font-size: 18px; }
  h3 { font-size: 16px; }
  h4 { font-size: 13px; }
  h5 { font-size: 11px; }
  h6 { font-size: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
