<!DOCTYPE html>
<html lang="{{ app.request.locale|default('de') }}">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{# === SEO Meta === #}
{% block metaData %}
<meta name="robots" content="noindex,nofollow">
{% endblock %}
{% include "@StartPlatzStyleBundle/_icon.html.twig" %}
<title>{% block title %}STARTPLATZ{% endblock %}</title>
{# === Tailwind CSS === #}
<script src="https://cdn.tailwindcss.com"></script>
{% block tailwindConfig %}
<script>
tailwind.config = {
theme: {
extend: {
colors: {
'sp-purple': '#9632FF',
'sp-grey': '#f5f5f5',
}
}
}
}
</script>
{% endblock %}
{# === Alpine.js === #}
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
{# === Google Fonts === #}
{% block fonts %}
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
{% endblock %}
{# === Bereichsspezifisches CSS === #}
{% block styles %}{% endblock %}
{# === Tracking (GTM, GA, FB Pixel, HubSpot) === #}
{% if not embed|default(false) %}
{% include "@StartPlatzStyleBundle/_tracking.html.twig" %}
{% endif %}
{# === Zusätzliche Head-Elemente (Meta Pixel, Custom CSS, etc.) === #}
{% block additionalHead %}{% endblock %}
</head>
<body class="{% block bodyClass %}font-[Source_Sans_Pro]{% endblock %}">
{# GTM noscript fallback #}
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WTVWDT"
height="0" width="0" style="display:none;visibility:hidden"></iframe>
</noscript>
{# === Navigation === #}
{% block navigation %}{% endblock %}
{# === Flash Messages (Tailwind-styled) === #}
{% block flashMessages %}
{% for type, messages in app.flashes %}
{% for message in messages %}
<div class="{% if type == 'success' %}bg-green-100 text-green-800 border-green-200{% elseif type == 'error' or type == 'danger' %}bg-red-100 text-red-800 border-red-200{% elseif type == 'warning' %}bg-yellow-100 text-yellow-800 border-yellow-200{% else %}bg-blue-100 text-blue-800 border-blue-200{% endif %} px-4 py-3 rounded-xl border mb-4 mx-auto max-w-4xl mt-4">
{{ message|raw }}
</div>
{% endfor %}
{% endfor %}
{% endblock %}
{# === Hauptinhalt === #}
{% block content %}{% endblock %}
{# === Footer === #}
{% block footer %}
{% if not embed|default(false) %}
{% include '@StartPlatzWebsiteBundle/Default/footer.tailwind.html.twig' %}
{% endif %}
{% endblock %}
{# === Cookie Consent === #}
{% if not embed|default(false) %}
{% include "@StartPlatzStyleBundle/_cookie.consent.html.twig" %}
{% endif %}
{# === JavaScript === #}
{% block javascripts %}{% endblock %}
</body>
</html>