/* Estilos de la wiki de Audara. Los tokens salen del home de wiki.audara.co.
   Este archivo es UNO solo para todo el sitio: si algo se ve raro en un articulo,
   se arregla aqui y se arregla en todos. */

/* Roboto vive aqui, no en fonts.googleapis.com. Un <link> a Google bloquea el
   pintado hasta que responda un tercero y le cuenta cada visita, que es justo
   lo que ya evitamos con los iconos incrustados.

   Son DOS archivos y no ocho: Google sirve el mismo woff2 variable para
   cualquier peso que le pidas, asi que los cuatro pesos que usa el sitio salen
   del mismo archivo. Por eso el font-weight del @font-face es un RANGO: si
   dice 500, el navegador sintetiza los demas en vez de interpolarlos.

   Los unicode-range son los de Google. El latin ya trae las tildes y la ñ; el
   latin-ext solo se descarga si aparece un caracter que lo necesite. */
@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(fuentes/roboto-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(fuentes/roboto-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

* { box-sizing: border-box; }
body { margin: 0; }
img { max-width: 100%; height: auto; }

:root {
  --ink: #222222;
  --heading: #2f3941;
  --section: #065779;
  --accent: #00b5d4;
  --band: #d9eff7;
  --hero: #d9f3fa;
  --card-line: #d3d3d3;
  --card-hover: rgba(0, 181, 212, 0.11);
  --radio: 24px;
  --icono: #3fafcb;
  --band-btn: #5cb8d1;
  --line: #e2e6e9;
  --note-bg: #eef7fb;
  --note-border: #7fcbe0;
  --warn-bg: #fdf3ec;
  --warn-border: #f0603c;
  --good-bg: #eff8f1;
  --good-border: #5cb87a;
}
body {
  background: #ffffff;
  color: var(--ink);
  font: 17px/1.65 -apple-system, system-ui, "Segoe UI", Helvetica, Arial, sans-serif;
}
.band {
  position: relative;
  background: var(--hero);
  padding: 20px 0;
}
.band::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url(imagenes/patron-fondo.png) repeat;
  opacity: 0.48;
  pointer-events: none;
}
.band .inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
/* La misma columna para todo el sitio. El hero tambien: sin esto su selector de
   idioma se pega al borde del viewport en vez de alinearse con el contenido. */
.band .inner, .hero .inner, main, footer .inner {
  max-width: 1060px;
  margin: 0 auto;
  padding: 0 24px;
}
/* El rastro: el boton de Volver y, al lado, el grupo al que pertenece el
   articulo. El grupo lleva al bloque del home que lo agrupa, que es el unico
   destino que tiene: no hay una pagina por grupo. */
.migas {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  min-width: 0;
}
.miga {
  font-family: Roboto, sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: var(--section);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  line-height: 1.3;
}
.miga:hover, .miga:focus-visible {
  border-bottom-color: var(--section);
  outline: none;
}
/* El boton de Volver, medido del articulo ya publicado. */
.back {
  display: inline-block;
  background: var(--accent);
  color: #ffffff;
  text-decoration: none;
  font-family: Roboto, sans-serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 1;
  padding: 12px 24px;
  border-radius: 11px;
  transition: background 0.3s;
}
.back:hover, .back:focus-visible {
  background: var(--section);
  outline: none;
}
.back:hover { background: #4aa9c4; }
/* El cambio de idioma. En el articulo va a la derecha de Volver; en el home,
   arriba del logo. Es el MISMO slug en los dos idiomas, asi que siempre lleva a
   la misma pagina y nunca al inicio. */
.idiomas {
  display: flex;
  align-items: center;
  gap: 4px;
  font-family: Roboto, sans-serif;
  font-size: 15px;
  font-weight: 500;
}
.idiomas a, .idiomas .actual {
  padding: 6px 12px;
  border-radius: 9px;
  line-height: 1;
  text-decoration: none;
}
.idiomas a {
  color: var(--section);
  transition: background 0.3s;
}
.idiomas a:hover, .idiomas a:focus-visible {
  background: rgba(255, 255, 255, 0.75);
  outline: none;
}
.idiomas .actual {
  background: rgba(255, 255, 255, 0.75);
  color: var(--ink);
}
.hero .idiomas { justify-content: flex-end; margin: -22px 0 14px; }

main { padding: 34px 24px 40px; }
h1 {
  font-family: Roboto, sans-serif;
  font-size: 42px;
  font-weight: 600;
  color: var(--heading);
  margin: 0 0 6px;
  text-wrap: balance;
}
.subtitle {
  font-family: Roboto, sans-serif;
  font-size: 24px;
  font-weight: 500;
  color: var(--section);
  margin: 0 0 22px;
}
.toc {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 20px 8px;
  margin-bottom: 34px;
}
.toc ul { margin: 0; padding-left: 24px; }
.toc li { margin: 4px 0; }
.toc a {
  color: var(--section);
  font-family: Roboto, sans-serif;
  font-weight: 500;
  text-decoration: none;
}
.toc a:hover, .toc a:focus-visible { text-decoration: underline; }
h2 {
  font-family: Roboto, sans-serif;
  font-size: 24px;
  font-weight: 500;
  color: var(--section);
  margin: 44px 0 12px;
}
h3 {
  font-family: Roboto, sans-serif;
  font-size: 19px;
  font-weight: 600;
  color: var(--heading);
  margin: 28px 0 8px;
}
h4 {
  font-family: Roboto, sans-serif;
  font-size: 17px;
  font-weight: 600;
  color: var(--heading);
  margin: 22px 0 6px;
}
p { margin: 0 0 14px; }
ul { margin: 0 0 14px; }
li { margin: 3px 0; }
/* Los enlaces del texto. Van en --section y no en --accent porque el --accent
   (#00b5d4) da 2,45:1 sobre blanco y el minimo de la AA para texto es 4,5:1;
   --section da 7,93:1. Y llevan subrayado: el color solo no distingue un enlace
   dentro de un parrafo para quien no ve bien el color.

   El subrayado va fino y separado de las letras para que no ahogue las tildes
   ni la cola de la g, que en un texto en espanol son muchas. */
a {
  color: var(--section);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
a:hover, a:focus-visible { text-decoration-thickness: 2px; }
/* Un enlace dentro de una negrita es el nombre de un modulo que tiene su propio
   articulo. Se queda en negrita: lo que lo distingue del resto de nombres en
   negrita es el color y el subrayado, no el grosor. */
strong a { color: var(--section); }
figure {
  margin: 22px 0 26px;
}
figure img {
  max-width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(47, 57, 65, 0.10);
}
p.icono {
  margin: 18px 0;
}
p.icono img {
  max-width: 72px;
  height: auto;
}
figcaption {
  font-size: 14px;
  color: #4a555e;
  margin-top: 8px;
  text-align: center;
}
.num {
  display: inline-block;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #f0603c;
  color: #ffffff;
  font: 700 13px/22px Roboto, sans-serif;
  text-align: center;
  vertical-align: -3px;
}
dl.fields { margin: 0 0 14px; }
dl.fields dt {
  font-weight: 700;
  margin-top: 12px;
}
dl.fields dd { margin: 2px 0 0 0; }
.callout {
  border-radius: 8px;
  padding: 14px 18px;
  margin: 20px 0;
}
.callout strong.tag {
  font-family: Roboto, sans-serif;
  display: block;
  margin-bottom: 4px;
}
.callout p { margin: 0; }
.callout.nota { background: var(--note-bg); border-left: 4px solid var(--note-border); }
.callout.importante { background: var(--warn-bg); border-left: 4px solid var(--warn-border); }
.callout.practica { background: var(--good-bg); border-left: 4px solid var(--good-border); }
/* Tablas. Las traia la wiki vieja (CDR, Outbound, Inbound, WFM) y hasta hoy no
   habia una sola regla aqui: salian con el estilo de fabrica del navegador, sin
   borde ni cabecera, en medio de un articulo que si tiene los suyos. */
table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0 26px;
  font-size: 15px;
}
th, td {
  border: 1px solid var(--line);
  padding: 9px 12px;
  vertical-align: top;
  text-align: left;
}
thead th {
  background: var(--band);
  color: var(--heading);
  font-weight: 700;
}
tbody tr:nth-child(even) { background: #f7f9fa; }
/* Codigo, citas y separadores. Lo mismo que paso con las tablas: el vocabulario
   de los articulos los incluye y se usan (34 <code> en 8 articulos, 6 <pre>, 6
   <blockquote>, 11 <hr>), pero aqui no habia una sola regla y salian con el
   estilo de fabrica del navegador. */
code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.9em;
  background: #f2f5f7;
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 1px 5px;
  white-space: nowrap;
}
pre {
  background: #f2f5f7;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px 16px;
  margin: 20px 0 26px;
  overflow-x: auto;
}
/* Dentro de un bloque el recuadro sobra, y ahi si tiene que poder partirse. */
pre code {
  background: none;
  border: 0;
  padding: 0;
  white-space: pre;
  font-size: 14px;
}
blockquote {
  margin: 20px 0;
  padding: 4px 0 4px 18px;
  border-left: 4px solid var(--band-btn);
  color: #4a555e;
}
blockquote p { margin: 0 0 8px; }
blockquote p:last-child { margin-bottom: 0; }
hr {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 32px 0;
}
footer {
  border-top: 1px solid var(--line);
  margin-top: 48px;
  padding: 18px 0 30px;
  font-size: 14px;
  color: #4a555e;
}

/* ---- Tabla de contenido ---- */
nav.toc { margin: 0 0 30px; }
nav.toc ul { margin: 0; padding-left: 20px; }
nav.toc li { margin: 3px 0; }

/* ---- Home ---- */
/* El fondo de garabatos y el color son los mismos del home en vivo: el patron
   es un mosaico de 300x186 al 48% de opacidad sobre el celeste. Va en un
   ::before para que la opacidad no se le pegue al texto. */
.hero {
  position: relative;
  background: var(--hero);
  padding: 62px 0 46px;
  text-align: center;
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url(imagenes/patron-fondo.png) repeat;
  opacity: 0.48;
  pointer-events: none;
}
.hero .inner { position: relative; }
.hero .logo {
  width: 250px;
  max-width: 62%;
  height: auto;
  margin: 0 auto 16px;
  display: block;
}
.hero h1 { margin: 0 0 6px; }
.hero p.lead {
  margin: 0 auto 26px;
  max-width: 640px;
  font-size: 18px;
  color: #3d4a52;
}
.buscador { max-width: 560px; margin: 0 auto; position: relative; }
.buscador input {
  width: 100%;
  font: inherit;
  font-size: 17px;
  padding: 14px 20px;
  border: 1px solid var(--band-btn);
  border-radius: var(--radio);
  background: #ffffff;
  color: var(--ink);
}
.buscador input:focus {
  outline: 2px solid var(--section);
  outline-offset: 1px;
}
.resultados {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  text-align: left;
  background: #ffffff;
  border: 1px solid var(--card-line);
  border-radius: 16px;
  box-shadow: 0 6px 22px rgba(47, 57, 65, 0.14);
  overflow: hidden;
  max-height: 62vh;
  overflow-y: auto;
  position: absolute;
  left: 0;
  right: 0;
  z-index: 5;
}
.resultados:empty { display: none; }
.resultados li { border-bottom: 1px solid var(--line); }
.resultados li:last-child { border-bottom: 0; }
.resultados a {
  display: block;
  padding: 11px 16px;
  text-decoration: none;
  color: var(--ink);
}
.resultados a:hover, .resultados a:focus {
  background: var(--note-bg);
  outline: none;
}
.resultados .r-titulo {
  display: block;
  font-family: Roboto, sans-serif;
  font-weight: 600;
  color: var(--section);
}
.resultados .r-donde {
  display: block;
  font-size: 14px;
  line-height: 1.45;
  color: #4a555e;
}
.resultados .r-donde + .r-donde { margin-top: 3px; }
.resultados mark { background: #ffe9a8; color: inherit; }
.sin-resultados { padding: 13px 16px; font-size: 15px; color: #4a555e; }

.grupo { margin: 46px 0 0; }
.grupo:first-of-type { margin-top: 30px; }
.grupo h2 {
  margin: 0 0 20px;
  text-align: center;
}
.tarjetas {
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.tarjetas li { margin: 0; }
.tarjetas a {
  display: flex;
  align-items: center;
  gap: 15px;
  height: 100%;
  padding: 20px;
  border: 1px solid var(--card-line);
  border-radius: var(--radio);
  text-decoration: none;
  color: var(--ink);
  background: #ffffff;
  transition: background 0.3s, border-color 0.3s, box-shadow 0.3s, transform 0.4s;
}
.tarjetas a:hover, .tarjetas a:focus-visible {
  background: var(--card-hover);
  border-color: var(--accent);
  box-shadow: 0 6px 18px rgba(47, 57, 65, 0.10);
  transform: translateY(-3px);
  outline: none;
}
/* El titulo se pone azul al pasar por encima. En el sitio en vivo esta regla
   existe pero apunta a --e-global-color-primary, que vale el mismo gris que ya
   tiene el titulo, asi que alli no se nota. */
.t-icono {
  flex: 0 0 50px;
  width: 50px;
  height: 50px;
  color: var(--icono);
  transition: color 0.3s;
}
.tarjetas a:hover .t-icono,
.tarjetas a:focus-visible .t-icono { color: var(--section); }
.t-texto { display: block; min-width: 0; }
/* Ojo con el interlineado: el 1.65 del body es para leer parrafos, no para dos
   renglones dentro de una tarjeta. Aqui va el 1.2 y el 1.5 del home en vivo. */
.tarjetas .t-titulo {
  font-family: Roboto, sans-serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.2;
  color: var(--heading);
  display: block;
  margin-bottom: 4px;
  transition: color 0.3s;
}
.tarjetas a:hover .t-titulo,
.tarjetas a:focus-visible .t-titulo { color: var(--section); }

@media (prefers-reduced-motion: reduce) {
  .tarjetas a { transition: none; }
  .tarjetas a:hover, .tarjetas a:focus-visible { transform: none; }
}
/* El display:block no es cosmetico: siendo inline, cada renglon se estira al
   interlineado del contenedor (17px x 1.65 = 28px) y el 1.5 de aqui no manda. */
.tarjetas .t-sub {
  display: block;
  font-family: Roboto, sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: var(--heading);
}

@media (max-width: 640px) {
  h1 { font-size: 32px; }
  .hero { padding: 34px 0 30px; }
  main { padding: 26px 20px 34px; }
  /* Los tres bajan juntos a 20px, o el selector de idioma queda cuatro pixeles
     corrido respecto a las tarjetas de abajo. */
  .band .inner, .hero .inner, footer .inner { padding: 0 20px; }
  /* Y con el hero mas bajo ya no hay espacio de donde subirlo. */
  .hero .idiomas { margin: 0 0 10px; }
  /* Una tabla de doce columnas (el CDR) empuja la pagina entera de lado en un
     telefono. Que se desplace ella sola: el scroll queda dentro de la tabla. */
  table { display: block; overflow-x: auto; }
}

/* Etiqueta que solo leen los lectores de pantalla. */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
