/*
 * Taraceista — sistema visual
 *
 * Tres reglas que no se rompen:
 *
 *   1. CERO sombras. La profundidad se hace con contraste y con filetes de
 *      1px, como en una revista. Una sombra es la forma perezosa de separar
 *      dos cosas.
 *   2. Nada de fondos crema. Negro casi puro, hueso para el texto y un solo
 *      acento saturado.
 *   3. Los bordes son rectos. Las esquinas redondeadas suavizan, y esto no
 *      quiere ser suave.
 *
 * La geometria de la taracea entra como estructura -rejilla, filetes,
 * proporciones- y no como adorno de fondo.
 */

:root {
  --negro: #0a0a0b;
  --negro-2: #121215;
  --negro-3: #1c1c20;
  --linea: #2a2a30;
  --linea-viva: #3d3d45;
  --hueso: #f2f0ed;
  --gris: #8b8783;
  --acento: #e4572e;
  --acento-apagado: #b8401f;

  --display: 'Bricolage Grotesque', 'Helvetica Neue', sans-serif;
  --texto: 'Bricolage Grotesque', system-ui, sans-serif;
  --mono: ui-monospace, 'SF Mono', 'Cascadia Mono', monospace;

  --ancho: 1240px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  background: var(--negro);
  color: var(--hueso);
  font-family: var(--texto);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.envoltorio { width: min(var(--ancho), 100% - 40px); margin-inline: auto; }

h1, h2, h3 { font-weight: 400; line-height: 1.02; letter-spacing: -0.025em; }
h1, h2 { font-family: var(--display); font-weight: 500; font-variation-settings: 'opsz' 96; }
h1 { font-size: clamp(3rem, 8vw, 6.6rem); letter-spacing: -0.045em; }
h2 { font-size: clamp(2.1rem, 5vw, 3.6rem); letter-spacing: -0.035em; }
h3 { font-family: var(--texto); font-size: 1rem; font-weight: 600; letter-spacing: -0.01em; line-height: 1.3; }

a { color: inherit; text-decoration: none; }

.etiqueta {
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gris);
}
.etiqueta--acento { color: var(--acento); }

/* ---------- Botones: rectangulares, sin sombra ---------- */
.boton {
  display: inline-flex; align-items: center; gap: 9px;
  border: 1px solid transparent;
  padding: 15px 26px;
  font: 500 0.94rem/1 var(--texto);
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.boton--fuerte { background: var(--acento); color: #fff; }
.boton--fuerte:hover { background: var(--acento-apagado); }
.boton--linea { border-color: var(--linea-viva); color: var(--hueso); background: none; }
.boton--linea:hover { border-color: var(--hueso); }

/* ---------- Cabecera con selector de idioma ---------- */
.cabecera { position: sticky; top: 0; z-index: 50; background: rgba(10, 10, 11, 0.88); backdrop-filter: blur(12px); border-bottom: 1px solid var(--linea); }
.cabecera__fila { display: flex; align-items: center; gap: 24px; height: 62px; }
.marca { display: flex; align-items: center; gap: 9px; font-family: var(--display); font-weight: 500; font-size: 1.24rem; letter-spacing: -0.04em; }
.navegacion { display: none; gap: 28px; font-size: 0.88rem; color: var(--gris); }
.navegacion a:hover { color: var(--hueso); }
@media (min-width: 940px) { .navegacion { display: flex; margin-left: 20px; } }

/* Los idiomas mandan arriba, a la derecha: es lo primero que busca alguien
   que no lee en castellano. */
.idiomas { margin-left: auto; display: flex; align-items: center; border: 1px solid var(--linea); }
.idiomas a {
  padding: 7px 11px;
  font-family: var(--mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--gris);
  border-right: 1px solid var(--linea);
}
.idiomas a:last-child { border-right: 0; }
.idiomas a:hover { color: var(--hueso); background: var(--negro-2); }
.idiomas a[aria-current='true'] { background: var(--hueso); color: var(--negro); }
.cabecera .boton { display: none; }
@media (min-width: 720px) { .cabecera .boton { display: inline-flex; padding: 10px 18px; font-size: 0.86rem; } }

/* ---------- Portada ---------- */
.portada { border-bottom: 1px solid var(--linea); padding: clamp(48px, 8vw, 96px) 0 40px; }
@media (min-width: 1000px) { .portada { padding-bottom: 0; } }
.portada__texto { max-width: 100%; }
.portada h1 { margin: 0; font-size: clamp(2.4rem, 5.4vw, 4.1rem); }
.portada h1 em { font-style: normal; color: var(--acento); }
.portada__bajada { margin-top: 26px; max-width: 44ch; color: var(--gris); font-size: 1.06rem; }
.portada__acciones { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.portada__nota { margin-top: 18px; font-family: var(--mono); font-size: 0.74rem; color: var(--gris); letter-spacing: 0.04em; }

.portada__rejilla { display: grid; gap: 40px; align-items: center; }
@media (min-width: 1000px) { .portada__rejilla { grid-template-columns: 1.15fr 0.85fr; gap: 56px; } }
.portada__marca { display: block; justify-self: center; margin-top: 8px; }
@media (min-width: 1000px) { .portada__marca { justify-self: end; margin-top: 0; } }
.portada__marca svg { width: 100%; height: auto; max-width: 240px; }
@media (min-width: 1000px) { .portada__marca svg { max-width: 420px; } }

/* ---------- Demostración: el rectángulo rojo, funcionando ---------- */
.demo { margin-top: clamp(48px, 7vw, 84px); border-top: 1px solid var(--linea); }
.demo__barra { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--linea); font-family: var(--mono); font-size: 0.72rem; color: var(--gris); letter-spacing: 0.06em; }
.demo__punto { width: 6px; height: 6px; background: var(--acento); flex: none; }
.demo__lienzo { position: relative; background: #faf7f2; border-bottom: 1px solid var(--linea); cursor: crosshair; user-select: none; overflow: hidden; }
/* ---------------------------------------------------------------------------
   La web de mentira: OTRA web, no un trozo de esta.

   Aqui dentro no manda nuestro sistema visual. Si hereda nuestro negro, nuestra
   tipografia y nuestros botones cuadrados, lo que se ve es la misma pagina con
   un marco alrededor, y entonces no demuestra nada: parece que editas nuestra
   web, no la de un cliente.

   Asi que va con lo suyo: papel crudo en vez de negro, una serie con serifa
   para los titulares, botones redondos, y sus propias reglas finas. La serifa
   es de sistema a proposito -Georgia esta en todas partes- porque una fuente
   mas serian dos peticiones para una demostracion.
   --------------------------------------------------------------------------- */
.demo__web {
  --papel: #faf7f2;
  --tinta: #2b211c;
  --tinta-suave: #7a6a60;
  --raya: #e3dbd0;
  --cafe: #7a3f2a;
  --serifa: Georgia, 'Iowan Old Style', 'Times New Roman', serif;

  padding: 0; pointer-events: none; height: clamp(360px, 52vh, 520px);
  overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none;
  background: var(--papel); color: var(--tinta);
  font-family: system-ui, -apple-system, 'Segoe UI', sans-serif;
}
.demo__web::-webkit-scrollbar { display: none; }
/* Columna de contenido, como cualquier web de verdad.
   En un ordenador ancho, esto se estiraba de borde a borde: un titular de 41
   caracteres repartido en 1.121 px, y el precio del cafe a mil pixeles de su
   nombre. Con este relleno el fondo sigue llegando a los lados -la cabecera
   pegajosa lo necesita- pero el texto se queda en una columna legible. */
.demo__web > * { padding-inline: max(24px, calc((100% - 820px) / 2)); }

.fweb__cabecera { display: flex; align-items: center; justify-content: space-between; gap: 18px;
                  padding-top: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--raya);
                  position: sticky; top: 0; background: var(--papel); z-index: 2; }
.fweb__marca { font-family: var(--serifa); font-weight: 700; font-size: 1.05rem; color: var(--tinta); letter-spacing: 0; }
.fweb__nav { display: flex; gap: 20px; font-size: 0.8rem; color: var(--tinta-suave); }
@media (max-width: 620px) { .fweb__nav span:nth-child(n+3) { display: none; } }

.fweb__portada { padding-top: clamp(26px, 4vw, 44px); padding-bottom: clamp(26px, 4vw, 44px); }
.demo__web .demo__rotulo { font-family: system-ui, sans-serif; font-weight: 600; font-size: 0.72rem;
                           letter-spacing: 0.16em; text-transform: uppercase; color: var(--cafe);
                           margin: 0 0 16px; padding-bottom: 0; border-bottom: 0; }
.demo__web h4 { font-family: var(--serifa); font-weight: 400; font-size: clamp(1.7rem, 4vw, 2.9rem);
                line-height: 1.12; letter-spacing: -0.01em; margin: 0 0 14px; color: var(--tinta);
                transition: color 0.25s; }
.demo__web p { color: var(--tinta-suave); max-width: 46ch; font-size: 0.94rem; }
.demo__web .fila { display: flex; gap: 10px; margin-top: 24px; }
/* Redondos, que es justo lo contrario de los nuestros. */
.demo__web .falso-boton { border: 1px solid var(--tinta); border-radius: 999px; padding: 9px 20px;
                          font-size: 0.84rem; color: var(--tinta); background: none; }
.demo__web .falso-boton--lleno { background: var(--tinta); color: var(--papel); border-color: var(--tinta); }

.fweb__foto { margin: 0; padding-top: 8px; padding-bottom: 26px; }
.fweb__foto img { width: 100%; height: auto; display: block; border-radius: 14px; }
.fweb__foto figcaption { margin-top: 10px; font-size: 0.78rem; color: var(--tinta-suave); font-style: italic; }

.fweb__seccion { padding-top: 26px; padding-bottom: 26px; border-top: 1px solid var(--raya); }
.fweb__titulo { font-family: var(--serifa); font-size: 1.15rem; letter-spacing: 0; text-transform: none;
                color: var(--tinta); margin-bottom: 16px; font-weight: 400; }
.fweb__lista { display: grid; }
.fweb__cafe { display: grid; grid-template-columns: 1fr auto; gap: 2px 16px; padding: 13px 0; border-top: 1px solid var(--raya); }
.fweb__cafe:first-child { border-top: 0; }
.fweb__cafe-nombre { grid-column: 1; grid-row: 1; font-family: var(--serifa); font-size: 1.02rem; color: var(--tinta); }
.fweb__cafe-nota { grid-column: 1; grid-row: 2; font-size: 0.82rem; color: var(--tinta-suave); }
.fweb__cafe-precio { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: 0.9rem;
                     color: var(--cafe); font-weight: 600; }
.fweb__cafe--nuevo { animation: entra-fila 0.5s ease-out both; }
@keyframes entra-fila { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

.fweb__video { margin: 0; padding-top: 8px; padding-bottom: 26px; }
.fweb__video-marco { position: relative; border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 9; background: #000; }
.fweb__video-marco iframe { width: 100%; height: 100%; border: 0; display: block; }
.fweb__video figcaption { margin-top: 10px; font-size: 0.78rem; color: var(--tinta-suave); font-style: italic; }

.fweb__entra { animation: entra-pieza 0.55s ease-out both; }
@keyframes entra-pieza { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

.fweb__pie { display: flex; flex-wrap: wrap; gap: 6px 20px; padding-top: 20px; padding-bottom: 30px;
             border-top: 1px solid var(--raya); font-size: 0.82rem; color: var(--tinta-suave); }
.fweb__horario { color: var(--tinta); }

/* Lo que la instruccion acaba de cambiar, marcado un momento. */
.demo__cambiado { animation: recien-cambiado 1.6s ease-out both; }
@keyframes recien-cambiado {
  0% { color: var(--acento); }
  70% { color: var(--acento); }
  100% { color: inherit; }
}

/* Mientras la demostracion se representa sola no se ofrece el cursor de
   dibujar: nadie esta apuntando todavia. */
.demo__lienzo--sola { cursor: default; }
#demo-rect { position: absolute; display: none; border: 2px solid var(--acento); background: rgba(228, 87, 46, 0.09); pointer-events: none; }
.demo__pista { position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%); font-family: var(--mono); font-size: 0.7rem; color: var(--gris); letter-spacing: 0.08em; border: 1px solid var(--linea); padding: 6px 14px; background: var(--negro); pointer-events: none; }
/* En una pantalla estrecha la web de mentira llega hasta abajo y el aviso se
   le monta encima de los botones. Se le deja su franja libre. */
@media (max-width: 620px) {
  .demo__web { padding-bottom: 66px; }
  .demo__pista { bottom: 12px; font-size: 0.66rem; padding: 5px 10px; }
}
/* El cajon OCUPA SU SITIO SIEMPRE, este abierto o cerrado.
   Antes pasaba de display:none a display:flex, o sea que aparecia de la nada y
   empujaba hacia abajo todo lo que tenia debajo: cada vuelta de la
   demostracion daba un salto a quien estuviera leyendo mas abajo. Reservar el
   hueco cuesta 50 px de nada y quita el salto entero. */
.demo__cajon { display: flex; border-bottom: 1px solid var(--linea); background: var(--negro-3); padding: 14px; gap: 10px; align-items: center;
               opacity: 0; visibility: hidden; transition: opacity 0.2s; }
.demo__cajon.abierto { opacity: 1; visibility: visible; }
.demo__cajon input { flex: 1; min-width: 0; background: var(--negro); border: 1px solid var(--linea-viva); color: var(--hueso); font: inherit; font-size: 0.9rem; padding: 11px 13px; outline: none; }
.demo__cajon input:focus { border-color: var(--acento); }
.demo__cajon .ref { font-family: var(--mono); font-size: 0.68rem; color: var(--acento); white-space: nowrap; }
@media (max-width: 620px) { .demo__cajon .ref { display: none; } }

/* ---------- Manifiesto ---------- */
/* --avance, de 0 a 1, lo pone el JavaScript en la seccion segun se baja, y de
   el cuelgan las dos cosas que crecen a la vez: el panel de taracea y el cuerpo
   de las lineas grandes. Sin JavaScript se queda en 1 y todo sale a su tamano.
   Va en la seccion y no en cada hijo para que el texto y la marca compartan
   exactamente el mismo numero: crecen juntos o no crece nada. */
.manifiesto { --avance: 1; border-bottom: 1px solid var(--linea); padding: clamp(64px, 9vw, 116px) 0; }
.manifiesto__rejilla { display: grid; gap: clamp(40px, 6vw, 72px); align-items: center; }
@media (min-width: 900px) { .manifiesto__rejilla { grid-template-columns: 1fr 0.82fr; } }

/* Aqui la marca no se monta sola como la de la portada: se teje con el scroll,
   y de la estrella va naciendo una figura tras otra hasta cerrar el panel. El
   scale del conjunto va aqui y no dentro del SVG. */
.manifiesto__marca {
  justify-self: center;
  transform: scale(calc(0.86 + 0.14 * min(1, var(--avance))));
  transition: transform .42s cubic-bezier(.2,.8,.3,1);
}
@media (min-width: 900px) { .manifiesto__marca { justify-self: end; } }
.manifiesto__marca svg { width: 100%; height: auto; max-width: 280px; display: block; }
@media (min-width: 900px) { .manifiesto__marca svg { max-width: 460px; } }
@media (prefers-reduced-motion: reduce) {
  .manifiesto { --avance: 1; }
  .manifiesto__marca { transform: none; transition: none; }
}
.manifiesto p { font-family: var(--display); font-weight: 500; font-size: clamp(1.6rem, 3.4vw, 2.7rem); line-height: 1.22; letter-spacing: -0.02em; max-width: 22ch; }
.manifiesto p + p { margin-top: 0.7em; color: var(--gris); }
.manifiesto strong { font-weight: 700; color: var(--acento); }

/* El cierre baja de cuerpo respecto a las lineas, pero lo que importa dentro
   de el vuelve a subir y se pone en acento. La interlinea va holgada para que
   las palabras grandes no choquen con la linea de arriba. */
.manifiesto .manifiesto__cierre {
  margin-top: 40px; max-width: 44ch; color: var(--gris);
  font-family: var(--texto); font-weight: 400;
  font-size: clamp(1.05rem, 1.5vw, 1.22rem); line-height: 1.75; letter-spacing: 0;
}
/* Las dos frases que importan entran del tamano del texto que las rodea y
   crecen hasta su vez y media, al ritmo al que se teje el panel. El cuerpo del
   <strong> no se toca nunca: manda la altura de la linea y el ancho de los
   espacios, que asi no encogen. Quien crece es cada palabra, y lo hace sin
   moverle el sitio a nada (ver el guion del tejido en build.mjs). */
.manifiesto .manifiesto__cierre strong {
  font-family: var(--display); font-weight: 500; font-size: 1.5em;
  line-height: 1.1; letter-spacing: -0.03em; color: var(--acento);
}
.manifiesto .manifiesto__cierre strong span {
  transition: font-size .42s cubic-bezier(.2,.8,.3,1), letter-spacing .42s cubic-bezier(.2,.8,.3,1);
}
/* Para medir hay que devolver la palabra a su cuerpo de destino y leerlo en el
   acto. Con la transicion puesta, lo que se lee es el tamano a mitad de camino
   y la medida sale corta -y encima se guarda-. El JavaScript pone esta clase
   mientras mide y la quita al fotograma siguiente. */
.manifiesto.midiendo .manifiesto__cierre strong span { transition: none; }
@media (prefers-reduced-motion: reduce) {
  .manifiesto .manifiesto__cierre strong span { transition: none; }
}

/* ---------- Comparativa ---------- */
.comparativa { border-bottom: 1px solid var(--linea); padding: clamp(64px, 9vw, 108px) 0; }
.tabla { width: 100%; border-collapse: collapse; margin-top: 44px; font-size: 0.92rem; }
.tabla th, .tabla td { border-top: 1px solid var(--linea); padding: 18px 14px; text-align: left; vertical-align: top; }
.tabla thead th { border-top: 0; border-bottom: 1px solid var(--linea-viva); font-family: var(--mono); font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gris); font-weight: 400; }
.tabla thead th:first-child { color: transparent; }
.tabla tbody th { font-weight: 500; color: var(--hueso); width: 26%; }
.tabla td { color: var(--gris); }
.tabla .nuestra { color: var(--hueso); background: var(--negro-2); }
.tabla thead .nuestra { color: var(--acento); background: var(--negro-2); }
@media (max-width: 720px) { .tabla { font-size: 0.84rem; } .tabla th, .tabla td { padding: 13px 9px; } }

/* ---------- Pasos, en banda horizontal ---------- */
.proceso { border-bottom: 1px solid var(--linea); padding: clamp(64px, 9vw, 108px) 0; }
.pasos { display: grid; gap: 0; margin-top: 48px; border-top: 1px solid var(--linea); }
@media (min-width: 860px) { .pasos { grid-template-columns: repeat(3, 1fr); } }
.paso { padding: 30px 26px 34px 0; border-bottom: 1px solid var(--linea); }
@media (min-width: 860px) { .paso { border-bottom: 0; border-right: 1px solid var(--linea); padding: 34px 30px; } .paso:first-child { padding-left: 0; } .paso:last-child { border-right: 0; } }
.paso__n { font-family: var(--mono); font-size: 0.72rem; color: var(--acento); letter-spacing: 0.12em; }
.paso h3 { margin: 14px 0 9px; }
.paso p { color: var(--gris); font-size: 0.93rem; }

/* ---------- Preguntas ---------- */
.preguntas { border-bottom: 1px solid var(--linea); padding: clamp(64px, 9vw, 108px) 0; }
.pregunta { border-top: 1px solid var(--linea); }
.pregunta:last-child { border-bottom: 1px solid var(--linea); }
.pregunta summary { cursor: pointer; padding: 22px 0; font-size: 1.02rem; font-weight: 500; list-style: none; display: flex; align-items: baseline; gap: 14px; }
.pregunta summary::-webkit-details-marker { display: none; }
.pregunta summary::before { content: '+'; font-family: var(--mono); color: var(--acento); flex: none; }
.pregunta[open] summary::before { content: '−'; }
.pregunta p { color: var(--gris); padding: 0 0 24px 26px; max-width: 62ch; font-size: 0.95rem; }

/* ---------- Cierre ---------- */
.cierre { padding: clamp(72px, 11vw, 140px) 0; border-bottom: 1px solid var(--linea); }
.cierre h2 { max-width: 15ch; }
.cierre p { color: var(--gris); margin: 22px 0 34px; max-width: 46ch; }

/* ---------- Pie ---------- */
.pie { padding: 34px 0 48px; font-size: 0.84rem; color: var(--gris); }
.pie__fila { display: flex; flex-wrap: wrap; gap: 16px 30px; align-items: center; }
.pie__fila .mono { font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.06em; }

@media (prefers-reduced-motion: reduce) { *, *::before { animation: none !important; transition: none !important; } html { scroll-behavior: auto; } }


/* El cursor de la demostracion: se mueve con transform, que no repinta nada. */
#demo-cursor { position: absolute; left: 0; top: 0; opacity: 0; pointer-events: none;
               transition: opacity 0.2s; filter: drop-shadow(0 1px 2px rgba(0,0,0,.5)); z-index: 3; }
#demo-cursor.visible { opacity: 1; }
#demo-cursor.pulsando { transform-origin: 0 0; }

/* El cajon ya no es un formulario: lo que se escribe se pinta, y se ve el
   cursor de texto parpadeando al final para que parezca escrito a mano. */
.demo__escrito { flex: 1; color: var(--hueso); font-size: 0.92rem; min-height: 1.2em; }
.demo__escrito::after { content: ''; display: inline-block; width: 1px; height: 1em;
                        background: var(--acento); margin-left: 2px; vertical-align: -2px;
                        animation: latir 1s steps(2) infinite; }
@keyframes latir { 50% { opacity: 0; } }

/* Nada de aquí se toca: es una representación. */
.demo__lienzo, .demo__cajon { cursor: default; }


/* El vídeo dentro de la web de mentira: un marco con su triángulo, que es como
   se ve un vídeo incrustado antes de darle. No es un reproductor: es la pieza
   que el cliente acaba de pedir que le pongan. */

/* ---------- Páginas legales ---------- */
/* Un documento que hay que leer: medida corta, aire entre bloques y ni un
   adorno. Lo único que se permite es el filete de 1px de siempre. */
.legal { max-width: 66ch; padding: 90px 0 80px; }
.legal h1 { font-size: clamp(2.4rem, 6vw, 3.4rem); margin-bottom: 24px; }
.legal h2 { font-size: 1.5rem; margin: 56px 0 14px; padding-top: 22px; border-top: 1px solid var(--linea); }
.legal h3 { font-size: 1.05rem; margin: 30px 0 10px; color: var(--acento); }
.legal p, .legal li { color: var(--hueso); margin-bottom: 14px; }
.legal__entrada { font-size: 1.12rem; color: var(--gris); }
.legal__fecha { font-size: 0.74rem; color: var(--gris); letter-spacing: 0.12em; margin-bottom: 10px; }
.legal__lista { padding-left: 20px; }
.legal__lista li { margin-bottom: 10px; }
.legal a { color: var(--acento); text-decoration: underline; text-underline-offset: 3px; }

.legal__tabla { width: 100%; border-collapse: collapse; margin: 18px 0 22px; font-size: 0.94rem; }
.legal__tabla th { text-align: left; font-family: var(--mono); font-size: 0.7rem; text-transform: uppercase;
                   letter-spacing: 0.1em; color: var(--gris); font-weight: 400; padding: 0 14px 8px 0; }
.legal__tabla td { padding: 12px 14px 12px 0; border-top: 1px solid var(--linea); vertical-align: top; }
@media (max-width: 620px) {
  .legal__tabla, .legal__tabla tbody, .legal__tabla tr, .legal__tabla td, .legal__tabla th { display: block; }
  .legal__tabla th { display: none; }
  .legal__tabla td { padding: 4px 0; border: none; }
  .legal__tabla tr { border-top: 1px solid var(--linea); padding: 14px 0; display: block; }
}

.pie__enlace { color: var(--gris); }
.pie__enlace:hover { color: var(--hueso); }
.legal__nota { font-size: 0.86rem; color: var(--gris); margin-top: -8px; }
