diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2376746..789abd4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,15 @@
# Changelog
+## 3.2.1 — 2026-09-13
+
+Upgrade QA follow-up to 3.2.0. Updating an existing site no longer replaces its header and footer layout.
+
+- Restore the 3.1.0 header and footer under the `flexia/header` and `flexia/footer` slugs, so existing sites keep their chrome on update. The 3.2 native-identity chrome remains available as the new `flexia/header-minimal` and `flexia/footer-minimal` patterns.
+- Give the minimal header's navigation an explicit page-list fallback so it no longer resolves to an unrelated saved menu.
+- Lay the minimal header out without wrapping, keeping WooCommerce's account and mini-cart icons on the logo and menu row.
+- Stop underlining button-shaped links inside post content, including WooCommerce's "Proceed to Checkout" button.
+- Correct the 3.2 migration note: a database-saved header/footer part that only references a pattern still follows the theme's current pattern.
+
## 3.2.0 — 2026-09-13
Update from the public 3.1.0 release. Requires WordPress 6.6 or later; tested up to WordPress 7.1.
diff --git a/assets/css/custom.css b/assets/css/custom.css
index e78df6a..35f29e6 100644
--- a/assets/css/custom.css
+++ b/assets/css/custom.css
@@ -563,5 +563,6 @@ ol.wp-block-comment-template ol .wp-block-columns {
scroll-behavior: auto !important;
}
}
-.wp-block-post-content a { text-decoration: underline; }
-.wp-block-post-content a:hover { text-decoration-thickness: 2px; }
+/* Body links are underlined, but button-shaped links are not. */
+.wp-block-post-content a:not(.wp-element-button):not(.wp-block-button__link):not(.wc-block-components-button) { text-decoration: underline; }
+.wp-block-post-content a:not(.wp-element-button):not(.wp-block-button__link):not(.wc-block-components-button):hover { text-decoration-thickness: 2px; }
diff --git a/assets/fonts/README.txt b/assets/fonts/README.txt
index bd8e75b..10d46cb 100644
--- a/assets/fonts/README.txt
+++ b/assets/fonts/README.txt
@@ -3,7 +3,12 @@ See Sora-OFL.txt and Inter-OFL.txt.
Original TTF files are retained from the Flexia 3.1.0 distribution.
WOFF2 files are losslessly compressed from those TTF files using fontTools 4.60.0.
-No glyphs were subset or renamed.
+The full WOFF2 files are kept for sites that reference them directly.
+theme.json declares per-script subsets instead: *_latin.woff2 (Google Fonts'
+"latin" range) and *_ext.woff2 (every other glyph in the font), each with its
+unicodeRange, so Latin-only pages download only the latin file.
+Subsets were cut from the TTF files with fontTools 4.60.0 pyftsubset
+(layout features, name table and hinting kept).
License sources retrieved 2026-09-10:
https://raw.githubusercontent.com/google/fonts/main/ofl/sora/OFL.txt
diff --git a/assets/fonts/inter_normal_400_ext.woff2 b/assets/fonts/inter_normal_400_ext.woff2
new file mode 100644
index 0000000..287609e
Binary files /dev/null and b/assets/fonts/inter_normal_400_ext.woff2 differ
diff --git a/assets/fonts/inter_normal_400_latin.woff2 b/assets/fonts/inter_normal_400_latin.woff2
new file mode 100644
index 0000000..7de65b9
Binary files /dev/null and b/assets/fonts/inter_normal_400_latin.woff2 differ
diff --git a/assets/fonts/sora_normal_400_ext.woff2 b/assets/fonts/sora_normal_400_ext.woff2
new file mode 100644
index 0000000..01bc0f3
Binary files /dev/null and b/assets/fonts/sora_normal_400_ext.woff2 differ
diff --git a/assets/fonts/sora_normal_400_latin.woff2 b/assets/fonts/sora_normal_400_latin.woff2
new file mode 100644
index 0000000..32c94b6
Binary files /dev/null and b/assets/fonts/sora_normal_400_latin.woff2 differ
diff --git a/assets/fonts/sora_normal_500_ext.woff2 b/assets/fonts/sora_normal_500_ext.woff2
new file mode 100644
index 0000000..1ee8ccb
Binary files /dev/null and b/assets/fonts/sora_normal_500_ext.woff2 differ
diff --git a/assets/fonts/sora_normal_500_latin.woff2 b/assets/fonts/sora_normal_500_latin.woff2
new file mode 100644
index 0000000..fb5341b
Binary files /dev/null and b/assets/fonts/sora_normal_500_latin.woff2 differ
diff --git a/assets/fonts/sora_normal_600_ext.woff2 b/assets/fonts/sora_normal_600_ext.woff2
new file mode 100644
index 0000000..b7f7621
Binary files /dev/null and b/assets/fonts/sora_normal_600_ext.woff2 differ
diff --git a/assets/fonts/sora_normal_600_latin.woff2 b/assets/fonts/sora_normal_600_latin.woff2
new file mode 100644
index 0000000..99db6d7
Binary files /dev/null and b/assets/fonts/sora_normal_600_latin.woff2 differ
diff --git a/docs/MIGRATION-3.2.md b/docs/MIGRATION-3.2.md
index d19430a..07de258 100644
--- a/docs/MIGRATION-3.2.md
+++ b/docs/MIGRATION-3.2.md
@@ -8,7 +8,7 @@ Back up the database and theme/plugin files, then test on a staging clone. WordP
- **Home/blog:** home.html is now a posts index. For the previous agency layout, insert the Agency landing page pattern into a page and choose that page as the static front page in Reading settings. It is no longer forced onto the posts index.
- **Archives/sidebar:** archives inherit the requested category/date/author and pagination. Single-with-sidebar renders the selected post body and comments, rather than a latest-post list.
- **Commerce:** archive-product.html supplies the actual catalog override. The old woocommerce custom-template filename remains as an alias for existing assignments. Related products now use WooCommerce's current-product context.
-- **Site identity:** configure your Site Logo, Site Title and Navigation. Default chrome no longer contains vendor demo contact links or signup links. Existing database-saved header/footer parts remain untouched.
+- **Site identity:** the default header and footer keep their 3.1.0 layout under the `flexia/header` and `flexia/footer` slugs, so upgrading does not change site chrome. Note that a database-saved header/footer part whose content is only a `wp:pattern` reference still resolves to the theme's current pattern, so preserving the saved record is not by itself enough to preserve the rendered layout. The native-identity chrome ships alongside as `flexia/header-minimal` and `flexia/footer-minimal`; apply either from the Site Editor to replace the vendor demo contact and signup links with your own Site Logo, Site Title and Navigation.
- **Styles:** theme.json v3, accessible palette updates, shared editor CSS, focus/touch behavior and reduced motion may change appearance. Compare default/dark/orange variations and any child styles before rollout. No existing style/pattern slug is intentionally removed.
- **Fonts:** missing DM Sans files are replaced by an explicit system fallback under the old preset slug. Missing Inter weights are no longer declared. Existing Sora/Inter files are served as WOFF2; old TTF URLs remain available. If exact typography is contractual, review those presets before updating.
diff --git a/functions.php b/functions.php
index ef15924..bd90147 100644
--- a/functions.php
+++ b/functions.php
@@ -9,7 +9,7 @@
}
define( 'FLEXIA_DEV_MODE', false );
-define( 'FLEXIA_VERSION', '3.2.0' );
+define( 'FLEXIA_VERSION', '3.2.1' );
define( 'FLEXIA_SLUG', 'flexia' );
define( 'FLEXIA_NAME', 'flexia' );
define( 'FLEXIA_DIR_PATH', get_template_directory() );
diff --git a/patterns/footer-minimal.php b/patterns/footer-minimal.php
new file mode 100644
index 0000000..a68c081
--- /dev/null
+++ b/patterns/footer-minimal.php
@@ -0,0 +1,12 @@
+
+
+