{% extends "pydata_sphinx_theme/layout.html" %}

{# Silence the navbar #}
{% block docs_navbar %}
{% endblock %}

<!--
    Custom footer
-->
{% block footer %}
<!-- Based on pydata_sphinx_theme/footer.html -->
<footer class="footer mt-5 mt-md-0">
  <div class="container">
    {% for footer_item in theme_footer_items %}
    <div class="footer-item">
      {% include footer_item %}
    </div>
    {% endfor %}
    <div class="footer-item">
      <p>Apache Arrow DataFusion, Arrow DataFusion, Apache, the Apache feather logo, and the Apache Arrow DataFusion project logo</p>
      <p>are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p>
    </div>
  </div>
</footer>

{% endblock %}
