{# Base layout for every public page. Child templates override the following blocks: - title : the contents of - meta_description : contents of <meta name="description"> - content : the page body inside <main> Design notes: - Semantic landmarks (<header>, <nav>, <main>, <footer>) for a11y. - Skip-link is the first focusable element so keyboard users can jump past the header. - aria-current="page" is applied to the active nav link by comparing the `active_nav` context variable the route passed us. - The mobile nav toggle uses addEventListener only — no inline event handlers — so we stay CSP-nonce-compatible when Phase 6 adds the strict CSP middleware. #}<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>{% block title %}Chicken Babies R Us{% endblock %} {# Self-hosted favicon + apple touch icon — no third-party CDNs. #} {# Skip link: hidden until focused. First focusable element on the page. #}
{% block content %}{% endblock %}
{# Mobile nav toggle. Tiny and CSP-friendly: no inline handlers, no JS framework. Phase 6's CSP will be compatible with moving this into an external file + nonce if we grow; for now the inline block stays. #}