{#
    Reusable newsletter signup widget. Drop it anywhere (footer, sidebar,
    landing page) — it posts to /newsletter/subscribe and the redirect
    target is the current page (sanitised by ReturnUrlSanitizer).

    Reads the flash code from `?newsletter=…` so the embedding page can
    render the success / error message without any flash-bag plumbing.

    Required Twig globals (TwigGlobalsMiddleware): `csrf_token`,
    `current_path`, `newsletter_flash`.
    Optional `include` parameter: `source` — short string carried to the
    server to disambiguate widget placement (e.g. `footer`, `home`).
#}
{% set newsletter_source = source|default('footer') %}

<section id="newsletter" data-newsletter-widget aria-labelledby="newsletter-heading">
    <h2 id="newsletter-heading">{{ trans('partials.newsletter.heading') }}</h2>
    <p>{{ trans('partials.newsletter.tagline') }}</p>

    {% if newsletter_flash %}
        <p role="status" data-newsletter-flash="{{ newsletter_flash }}">
            {{ trans('partials.newsletter.flash.' ~ newsletter_flash) }}
        </p>
    {% endif %}

    <form method="post" action="/newsletter/subscribe" novalidate>
        <input type="hidden" name="_csrf"  value="{{ csrf_token }}">
        <input type="hidden" name="return" value="{{ current_path|default('/') }}">
        <input type="hidden" name="source" value="{{ newsletter_source }}">

        {# Honeypot: invisible to humans (CSS + aria-hidden + tabindex=-1),
           any non-empty submission flips the spam trap server-side. #}
        <div aria-hidden="true" style="position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden;">
            <label>
                {{ trans('partials.newsletter.honeypotLabel') }}
                <input type="text" name="website" tabindex="-1" autocomplete="off" value="">
            </label>
        </div>

        <label>
            <span>{{ trans('partials.newsletter.emailLabel') }}</span>
            <input type="email"
                   name="email"
                   required
                   autocomplete="email"
                   placeholder="{{ trans('partials.newsletter.emailPlaceholder') }}">
        </label>

        <button type="submit">{{ trans('partials.newsletter.submit') }}</button>

        <p>
            <small>{{ trans('partials.newsletter.consent') }}</small>
        </p>
    </form>
</section>
