diff --git a/company_site/docs/agentic-browsing.md b/company_site/docs/agentic-browsing.md
new file mode 100644
index 0000000..c67bc33
--- /dev/null
+++ b/company_site/docs/agentic-browsing.md
@@ -0,0 +1,45 @@
+# Agentic Browsing Readiness
+
+This site targets Google's experimental **Agentic Browsing** Lighthouse category (v13.3+), which checks whether AI agents can read, navigate, and act on public pages.
+
+PageSpeed Insights does not yet expose this category. Run audits locally:
+
+```bash
+npx lighthouse@latest https://aimloperations.com \
+ --only-categories=agentic-browsing \
+ --chrome-flags="--enable-experimental-web-platform-features" \
+ --output=html --output-path=agentic-browsing-report.html
+```
+
+Test at minimum:
+
+- `/` (homepage)
+- `/contact` (primary conversion page)
+
+## What we ship
+
+| Check | Implementation |
+|-------|----------------|
+| **llms.txt** | `GET /llms.txt` — machine-readable site summary |
+| **robots.txt** | `GET /robots.txt` — crawl rules + sitemap reference |
+| **sitemap.xml** | `GET /sitemap.xml` — public marketing URLs |
+| **Accessibility tree** | Form labels, semantic nav controls, ARIA on dialogs |
+| **Layout stability** | Fixed cookie banner, reserved hero/marquee space, font fallbacks |
+
+WebMCP is intentionally deferred until browser and agent support stabilizes.
+
+## Regression checklist
+
+Before merging public-facing template or CSS changes:
+
+1. Contact form fields have associated `
+
-
+
Cookie consent
+
We use analytics tracking to understand how visitors use our site. Tracking runs only if you accept.
See our Terms of Service & Privacy Policy for details.
We use analytics if you accept. Privacy Policy
@@ -157,9 +159,41 @@
if (mobileBtn && navLinks) {
mobileBtn.addEventListener('click', function () {
- navLinks.classList.toggle('active');
+ const isOpen = navLinks.classList.toggle('active');
+ mobileBtn.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
+ mobileBtn.setAttribute('aria-label', isOpen ? 'Close menu' : 'Open menu');
});
}
+
+ function closeDropdown(dropdown) {
+ dropdown.classList.remove('dropdown-open');
+ const trigger = dropdown.querySelector('.nav-dropdown-trigger, .profile-icon-link');
+ if (trigger) {
+ trigger.setAttribute('aria-expanded', 'false');
+ }
+ }
+
+ document.querySelectorAll('.dropdown').forEach(function (dropdown) {
+ const trigger = dropdown.querySelector('.nav-dropdown-trigger, .profile-icon-link');
+ if (!trigger) {
+ return;
+ }
+
+ trigger.addEventListener('click', function (event) {
+ if (window.matchMedia('(min-width: 769px)').matches && dropdown.querySelector('.nav-dropdown-trigger')) {
+ return;
+ }
+ event.preventDefault();
+ const isOpen = dropdown.classList.toggle('dropdown-open');
+ trigger.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
+ });
+ });
+
+ document.addEventListener('click', function (event) {
+ if (!event.target.closest('.dropdown')) {
+ document.querySelectorAll('.dropdown.dropdown-open').forEach(closeDropdown);
+ }
+ });
});
{% block tracking_events %}{% endblock %}
diff --git a/company_site/public/templates/public/contact.html b/company_site/public/templates/public/contact.html
index 3f050ea..054b89b 100644
--- a/company_site/public/templates/public/contact.html
+++ b/company_site/public/templates/public/contact.html
@@ -6,7 +6,7 @@
{% block content %}
-
+
Get in Touch
Describe the workflow or bottleneck you want to automate—we will help you scope a forward-deployed solution.
@@ -32,24 +32,28 @@
{% endif %}