- Pull the special-discount carousel's banner out of the swiper into a
fixed sidebar (no longer scrolls with the product slides) and drop
carousel looping
- Wire it to a new sale-banner static-image slot
- Fix an invalid xs: breakpoint that was silently keeping the banner
at its smallest width on all phone sizes
- Tighten ProductCard's title height to match 2 lines of text instead
of reserving extra space, and drop a redundant top margin on the
price row that was inflating card height
- Replace legacy DB-slug URLs with /products/{id}/{fa-slug},
/products/category/{id}/{fa-slug}, and /blog/{id}/{fa-slug}, backed by
the new by-id API endpoints and a Persian slugify helper
- Add /sitemap.xml (index) + /sitemap-main.xml + /sitemap-products.xml
and /robots.txt pointing to it
- Register the three-banner-row slot in the static-image-slots catalog
- Replace the homepage category carousel with a 3-column linkable
ThreeBanners section wired to that slot
- Remove the now-superseded root prompt files (moved into Ai data/)