/* =============================================================
   FOOTER-NAV.CSS
   Base compartida, botones, header y footer.
   Compartido entre páginas: nunca duplicar estos estilos.
   ============================================================= */

/* ---------- Base ---------- */

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: var(--fuente-base);
  font-weight: var(--peso-regular);
  color: var(--color-negro);
  background-color: var(--color-negro);
}

img {
  display: block;
  max-width: 100%;
}

.contenedor {
  width: min(var(--ancho-contenedor), 100% - 2 * var(--margen-lateral));
  margin-inline: auto;
}

/* Oculto a la vista pero accesible para lectores de pantalla y SEO */
.visualmente-oculto {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Todo lo que lleva al inicio queda oculto hasta que exista la home */
.oculto-inicio {
  display: none !important;
}

/* ---------- Botones ---------- */

.boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: var(--alto-boton);
  padding: var(--padding-boton);
  border: var(--borde-fino);
  border-radius: var(--radio-boton);
  font-family: var(--fuente-base);
  font-size: var(--fs-boton);
  font-weight: var(--peso-bold);
  line-height: var(--lh-boton);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--transicion-base), color var(--transicion-base);
}

/* Fondo blanco, texto negro → hover invertido */
.boton--claro {
  background-color: var(--color-blanco);
  color: var(--color-negro);
}

.boton--claro:hover {
  background-color: var(--color-negro);
  color: var(--color-blanco);
}

/* Fondo negro, texto blanco → hover invertido */
.boton--oscuro {
  background-color: var(--color-negro);
  color: var(--color-blanco);
}

.boton--oscuro:hover {
  background-color: var(--color-blanco);
  color: var(--color-negro);
}

.boton:focus-visible {
  outline: var(--foco-claro);
  outline-offset: 2px;
}

/* ---------- Navegación (header y footer) ---------- */

.nav {
  display: flex;
  align-items: center;
  gap: var(--espacio-m);
}

.nav-link {
  display: inline-block;
  color: var(--color-blanco);
  font-size: var(--fs-boton);
  font-weight: var(--peso-bold);
  line-height: var(--lh-boton);
  text-decoration: none;
  white-space: nowrap;
  transition: transform var(--transicion-base);
}

.nav-link:hover {
  transform: var(--escala-hover);
}

.nav-link:focus-visible {
  outline: var(--foco-claro);
  outline-offset: 4px;
}

.logo {
  display: block;
  flex-shrink: 0;
}

.logo img {
  width: var(--ancho-logo);
  height: var(--alto-logo);
  object-fit: contain;
}

/* Header: el logo va recortado dentro de su caja, igual que en Figma */
.header .logo {
  position: relative;
  width: var(--ancho-logo);
  height: var(--alto-logo);
  overflow: hidden;
}

.header .logo img {
  position: absolute;
  left: -15.64%;
  top: -31.67%;
  width: 131.96%;
  height: 171.67%;
  max-width: none;
}

/* ---------- Header ---------- */

.header {
  position: relative;
  z-index: 2;
  background-color: var(--color-negro);
}

.header-contenedor {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--alto-header);
}

/* ---------- Footer ---------- */

.footer {
  background-color: var(--color-negro);
  padding-block: var(--espacio-l);
  color: var(--color-blanco);
}

.footer-contenedor {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-block: var(--espacio-s);
}

.footer-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block: var(--espacio-m);
}

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block: var(--espacio-s);
  border-top: var(--linea-footer);
}

.footer-copyright {
  margin: 0;
  font-size: var(--fs-copyright);
  line-height: var(--lh-copyright);
}

.footer-redes {
  display: flex;
  align-items: center;
  gap: var(--espacio-s);
}

.footer-redes a {
  display: block;
  transition: transform var(--transicion-base);
}

.footer-redes a:hover {
  transform: var(--escala-hover);
}

.footer-redes a:focus-visible {
  outline: var(--foco-claro);
  outline-offset: 4px;
}

/* Los SVG vienen sin color (negros): se pasan a blanco */
.footer-redes img {
  filter: brightness(0) invert(1);
}

.icono-grande {
  width: var(--icono-grande);
  height: var(--icono-grande);
}

.icono-chico {
  width: var(--icono-chico);
  height: var(--icono-chico);
}

/* ---------- Mobile ---------- */

@media (max-width: 767px) {
  .nav {
    gap: var(--espacio-s);
  }

  .header .nav {
    gap: 16px;
  }

  .footer-top,
  .footer-bottom {
    flex-direction: column;
    gap: var(--espacio-s);
    text-align: center;
  }

  .footer-copyright {
    font-size: var(--fs-boton);
  }
}
