the newsletter widget was being rendered twice on the timeline (once for
mobile, once for desktop) via hidden/visible wrapper divs. both copies
shared the same element ids (newsletter-widget, newsletter-widget-msg),
so desktop submissions swapped into the hidden mobile copy and appeared
to do nothing. collapse the two layouts into one responsive grid with
tailwind order/col-start utilities so the widget lives in the dom
exactly once, and drop the mutationobserver wiring in favour of a small
delegated click listener that also handles gfi banner widening on
dismiss.
consolidate the three signup form variants (banner, widget, home hero)
into a single newsletterForm fragment that takes a dict(Id, Variant).
each instance gets a unique response-span id (newsletter-msg-<Id>) so
multiple forms can coexist on a page without id collisions.
move the handler's inline html/tailwind response strings into a
newsletterResponse template rendered through pages, so the response id
round-trips with the form's hx-target via an hx-vals target field.
drop the stray blank line in base.html.
Signed-off-by: eti <eti@eti.tf>