"""Erzeugt die sieben HTML-Seiten aus gemeinsamen Bausteinen (Header, Footer, Leistungen). Quelle der Wahrheit für Inhalt und Struktur ist diese Datei — die HTML-Dateien nicht von Hand ändern, sondern hier ändern und neu erzeugen: python3 tools/build_pages.py (braucht Pillow: pip install pillow) """ import json from datetime import date from pathlib import Path from PIL import Image OUT = Path(__file__).resolve().parent.parent IMG = OUT / "assets/img" YEARS = date.today().year - 2003 # motion.js aktualisiert zur Laufzeit SITE = "https://www.kirschner-service.de" TEL = "0871 / 14 26 91 01" TEL_HREF = "tel:+4987114269101" SOS = "0160 / 836 57 53" SOS_HREF = "tel:+491608365753" MAIL = "info@kirschner-service.de" MAPS = "https://www.google.com/maps/search/?api=1&query=Etzstra%C3%9Fe+45%2C+84030+Ergolding" def mailto(subject, body=""): from urllib.parse import quote q = "subject=" + quote(subject) if body: q += "&body=" + quote(body) return f"mailto:{MAIL}?{q}" ANFRAGE = mailto("Angebotsanfrage", "Guten Tag,\n\nich interessiere mich für Ihre Leistungen.\n\nObjekt / Adresse:\nGewünschte Leistungen:\nTelefon für Rückruf:\n\nViele Grüße\n") # ---------- Icons ---------- I_ARROW = '' I_ARROW_S = '' I_PHONE = '' I_DOWN = '' I_PLUS = '' I_DRAG = '' def chev_mark(cls="chev-mark"): return (f'') HERO_CHEVRONS = ('') BAND_CHEV = ('') def pic(name, alt, sizes="100vw", eager=False, cls=""): w, h = Image.open(IMG / f"{name}-1600.webp").size if (IMG / f"{name}-1600.webp").exists() else Image.open(IMG / f"{name}-1400.webp").size big = 1600 if (IMG / f"{name}-1600.webp").exists() else 1400 load = 'fetchpriority="high"' if eager else 'loading="lazy" decoding="async"' c = f' class="{cls}"' if cls else "" return (f'' f'' f'' f'{alt}') NAV = [("index.html", "Start"), ("leistungen.html", "Leistungen"), ("unternehmen.html", "Unternehmen"), ("karriere.html", "Karriere"), ("kontakt.html", "Kontakt")] HEAD_SCRIPT = ("(function(r){r.classList.add('js');try{if(r.hasAttribute('data-intro')&&!sessionStorage.getItem('kk-intro')" "&&matchMedia('(prefers-reduced-motion: no-preference)').matches)r.classList.add('has-intro')}catch(e){}" "setTimeout(function(){if(!r.classList.contains('motion-ready'))r.classList.remove('js','has-intro')},3000)})(document.documentElement)") LD = { "@context": "https://schema.org", "@type": "LocalBusiness", "name": "Kirschner Gebäudeservice", "description": "Hausmeisterservice und Gebäudedienstleistungen in Landshut und Ergolding seit 2003.", "url": SITE + "/", "telephone": "+49 871 14269101", "email": MAIL, "foundingDate": "2003", "founder": {"@type": "Person", "name": "Thomas Kirschner"}, "address": {"@type": "PostalAddress", "streetAddress": "Etzstraße 45", "postalCode": "84030", "addressLocality": "Ergolding", "addressRegion": "Bayern", "addressCountry": "DE"}, "areaServed": ["Landshut", "Ergolding"], "slogan": "persönlich, zuverlässig, erstklassig", "image": SITE + "/assets/img/og.jpg", } def head(title, desc, file, intro=False): ld = f'' if file == "index.html" else "" canonical = SITE + "/" + ("" if file == "index.html" else file) return f''' {title} {ld} ''' def header(active): def cur(f): return ' aria-current="page"' if f == active else "" links = "".join(f'{n}' for f, n in NAV if f != "index.html") mlinks = "".join(f'
  • {n}
  • ' for f, n in NAV) return f'''
    ''' FOOTER = f''' Notruf 24/7{SOS} ''' def page(file, title, desc, body, intro=False): html = head(title, desc, file, intro) + "\n" + header(file) + f'\n
    \n{body}\n
    ' + FOOTER + "\n\n\n" (OUT / file).write_text(html, encoding="utf-8") print("geschrieben:", file, len(html)) def page_hero(eyebrow, h1, lead, extra=""): return f'''
    {HERO_CHEVRONS}

    {eyebrow}

    {h1}

    {lead}

    {extra}
    ''' def cta_final(h, p, theme=""): return f'''
    ''' # ====================================================================== # Leistungen (eine Quelle für Start und Leistungsseite) # ====================================================================== SERVICES = [ ("reinigung", "Reinigung", "Treppenhäuser, Eingangsbereiche, Innen- und Außenflächen — regelmäßig und nach festem Plan. Tiefgaragen reinigen wir mit modernen Maschinen.", ["Treppenhaus", "Innenreinigung", "Außenreinigung", "Tiefgarage"], "Treppenhaus in einem modernen Wohngebäude"), ("glas", "Glas- & PV-Reinigung", "Mit eigener Osmoseanlage und reinem Wasser: streifenfreie Fenster und saubere Photovoltaik-Module — meist sogar ohne Hebebühne.", ["Osmoseanlage", "Fenster & Fassadenglas", "Photovoltaik", "meist ohne Hebebühne"], "Fensterreinigung mit Teleskopstange an einem Wohnhaus"), ("garten", "Garten- & Grünpflege", "Rasen, Hecken, Beete und Grünanlagen — gepflegt über das ganze Jahr, damit Ihr Objekt schon von außen einen guten Eindruck macht.", ["Rasenpflege", "Heckenschnitt", "Grünanlagen", "Gartenarbeiten"], "Heckenschnitt in einer Gartenanlage"), ("technik", "Technische Hausbetreuung", "Kontrolle und Wartung technischer Anlagen, regelmäßige Rundgänge und ein wacher Blick, bevor aus Kleinigkeiten teure Schäden werden.", ["Anlagenkontrolle", "Wartung", "Objektrundgänge"], "Rohrleitungen einer Haustechnikanlage"), ("reparatur", "Reparaturen & Renovierungen", "Handwerkliches Können im eigenen Team — vom Schreiner bis zum Servicetechniker. Kleine Reparaturen erledigen wir direkt, größere planen wir mit Ihnen.", ["Reparaturen", "Renovierungen", "Schreinerarbeiten"], "Handwerker bei der Arbeit mit einem Akkuschrauber"), ("winter", "Winterdienst", "Räumen und Streuen mit eigenen Fahrzeugen, damit Wege, Zufahrten und Eingänge bei Schnee und Eis sicher bleiben.", ["Räumdienst", "Streudienst", "eigene Fahrzeuge"], "Schneeräumung vor einem Gebäude"), ("bereitschaft", "24/7-Bereitschaft", "Auf Wunsch sind wir rund um die Uhr erreichbar. Wenn es brennt, erreichen Sie uns über den Notruf — auch nachts und am Wochenende.", ["rund um die Uhr", "Notruf", "auf Wunsch"], "Reinigung einer Glasfassade am Abend"), ] # ====================================================================== # Startseite # ====================================================================== panels = "".join(f'''
    {pic(n, alt, "(min-width: 1024px) 38vw, (min-width: 700px) 50vw, 100vw")}{i:02d}

    {t}

    {d}

      {"".join(f"
    • {x}
    • " for x in tags)}
    ''' for i, (n, t, d, tags, alt) in enumerate(SERVICES, 1)) INDEX = f'''
    {pic("hero", "", "100vw", eager=True)}
    {HERO_CHEVRONS}

    Hausmeisterservice · Landshut & Ergolding

    Ihr Gebäude.
    In besten Händen.

    Reinigung, Grünpflege, Technik, Reparaturen und Winterdienst aus einer Hand — für Privat, Eigentümergemeinschaften, Gewerbe und die öffentliche Hand. Seit 2003.

    • Das Original seit 2003
    • Eigene Osmoseanlage
    • 24/7-Bereitschaft auf Wunsch
    • PrivatHaus, Garten, Reparaturen
    • EigentümergemeinschaftenWohnanlagen & Hausverwaltungen
    • GewerbeBüro-, Gewerbe- & Tiefgaragen
    • Öffentliche HandKommunale Objekte

    Über uns

    Werterhalt, der man ansieht.

    Seit 2003 kümmern wir uns um Immobilien in Landshut, Ergolding und Umgebung — und werden dabei auch gehobenen Ansprüchen im Premiumbereich gerecht.

    Sie bekommen feste Ansprechpartner, ein eingespieltes Team und professionelle Arbeit zu einem fairen Preis. Unsere langjährige Erfahrung bringen wir gern zum Werterhalt Ihrer Immobilie ein.

    Unternehmen & Team {I_ARROW_S}

    {YEARS}Jahre Erfahrung — das Original seit 2003
    7Leistungsbereiche aus einer Hand
    24/7Bereitschaftsdienst auf Wunsch
    4Kundengruppen — von Privat bis Kommune

    Leistungen

    Alles, was Ihr Gebäude braucht.

    Klassische Hausmeisterdienste und spezialisierte Leistungen — koordiniert von einem Team, das Ihr Objekt kennt.

    {panels}
    Alle Leistungen im Detail {I_ARROW}

    Glas- & PV-Reinigung

    Reines Wasser. Klare Sicht.

    Mit unserer eigenen Osmoseanlage reinigen wir Glasflächen und Photovoltaik-Module mit entmineralisiertem Wasser — ohne Rückstände.

    • Streifenfrei trocknend, ohne Reinigungsmittel
    • Teleskoptechnik — meist sogar ohne Hebebühne
    • Für Fenster, Glasfassaden und PV-Anlagen

    Reinigung anfragen {I_ARROW}

    {pic("pv-nachher", "Photovoltaik-Modul nach der Reinigung, klar und glänzend", "(min-width: 960px) 55vw, 100vw")}
    {pic("pv-vorher", "Photovoltaik-Modul vor der Reinigung, mit Staub und Kalkflecken", "(min-width: 960px) 55vw, 100vw")}
    Symbolbild — ziehen oder mit den Pfeiltasten vergleichen.

    Unsere Philosophie

    Persönlich. Zuverlässig. Erstklassig.

    Persönlich

    Feste Ansprechpartner und Mitarbeiter, die „ihre" Objekte kennen — keine wechselnden Springer.

    Zuverlässig

    Klare Abläufe, strukturiert über unsere eigene App, und auf Wunsch Bereitschaft rund um die Uhr.

    Erstklassig

    Moderne Maschinen, eigene Osmoseanlage, handwerkliche Ausbildung im Team — für Ansprüche bis in den Premiumbereich.

    {BAND_CHEV}

    Wir stellen ein

    Bock auf einen vielseitigen Job?

    Hausmeister, Ga-La-Bauer, Glas- und Solarreiniger, Reinigungskräfte: übertarifliche Bezahlung, starkes Team, viel frische Luft — und freitagnachmittags frei.

    Offene Stellen {I_ARROW}
    ''' + cta_final("Sprechen wir über Ihr Objekt.", "Rufen Sie uns an oder schreiben Sie uns — wir melden uns schnell und unterbreiten Ihnen gern ein Angebot.") page("index.html", "Kirschner Gebäudeservice — Hausmeisterservice in Landshut & Ergolding seit 2003", "Hausmeisterservice, Reinigung, Glas- & PV-Reinigung mit Osmose, Grünpflege, Winterdienst und 24/7-Bereitschaft in Landshut und Ergolding. Persönlich, zuverlässig, erstklassig — seit 2003.", INDEX, intro=True) # ====================================================================== # Leistungen # ====================================================================== PRIVAT = ["Gartenarbeiten", "Reparaturen", "Renovierungen", "Glas- & PV-Reinigung", "Winterdienst"] GEWERBE = ["Technische Hausbetreuung", "Innenreinigung", "Außenreinigung", "Pflege von Grünanlagen", "Winterdienst", "Reparaturen", "Renovierungen", "Tiefgaragenreinigung", "Glas- & PV-Reinigung", "24/7-Bereitschaft"] rows = "".join(f'''
    {pic(n, alt, "(min-width: 960px) 52vw, 100vw")}
    {i:02d}

    {t}

    {d}

      {"".join(f"
    • {x}
    • " for x in tags)}
    ''' for i, (n, t, d, tags, alt) in enumerate(SERVICES, 1)) LEISTUNGEN = page_hero("Leistungen", "Ein Team. Jedes Gewerk.", "Klassische Hausmeisterdienste und spezialisierte Leistungen — einzeln buchbar oder als Rundum-Betreuung für Ihr Objekt.", f'
    Angebot anfragen {I_ARROW}
    ') + f'''

    Leistungsumfang

    Für private und gewerbliche Objekte.

      {"".join(f"
    • {x}
    • " for x in GEWERBE)}
    {rows}

    Leistungsverzeichnis

    Alles schwarz auf weiß.

    Eine detaillierte Aufstellung unserer Dienstleistungen finden Sie in unseren Leistungsverzeichnissen.

    Referenzen

    Wir betreuen Wohnanlagen, Gewerbeanlagen und kommunale Objekte in Landshut. Auf Wunsch nennen wir Ihnen gern Referenzobjekte.

    ''' + cta_final("Sie wünschen ein Angebot?", "Sprechen Sie uns an — wir schauen uns Ihr Objekt an und unterbreiten Ihnen ein Angebot, das zu Ihnen passt.") page("leistungen.html", "Leistungen — Hausmeisterservice, Reinigung, Winterdienst | Kirschner Gebäudeservice", "Reinigung, Glas- & PV-Reinigung mit Osmoseanlage, Garten- & Grünpflege, technische Hausbetreuung, Reparaturen, Winterdienst und 24/7-Bereitschaft in Landshut und Ergolding.", LEISTUNGEN) # ====================================================================== # Unternehmen # ====================================================================== TIMELINE = [ ("2003", "Gründung in Ergolding", "Kirschner Gebäudeservice startet — mit umfangreichen Dienstleistungen rund um Immobilien. Das Original seit 2003."), ("2013", "10 Jahre", "Zehn Jahre Kirschner Gebäudeservice. Wir bedanken uns bei unseren Kunden für die gute und erfolgreiche Zusammenarbeit."), ("2015", "Servicetechnik & Schreinerei", "Herr Listl verstärkt Servicetechnik und Hausmeisterei — mit langjähriger Erfahrung als Schreiner."), ("2018", "15 Jahre — und 120 Schulessen-Jahre", "Wir feiern das Jubiläum mit unseren Geschäftspartnern. Durch die Spenden des Abends werden über 120 Kinder in Nepal ein Jahr lang mit Schulessen versorgt."), ("2019", "Das Team wächst", "Herr Gerhart ergänzt das Team mit handwerklicher Ausbildung, Herr Ponath mit langjähriger Erfahrung in der Gebäudedienstleistung."), ("2020", "Für den Nachwuchs", "Ein neuer Trikotsatz für die U8 des FC Ergolding 1932 e.V."), ("Heute", f"{YEARS} Jahre Erfahrung", "Wohnanlagen, Gewerbeanlagen und kommunale Objekte in Landshut und Umgebung — persönlich betreut von einem eingespielten Team."), ] tl = "".join(f'''
    {y}

    {h}

    {p}

    ''' for y, h, p in TIMELINE) TEAM = [("TK", "Thomas Kirschner", "Geschäftsführung"), ("MP", "Marcel Pilsner", "Stellvertretende Geschäftsführung"), ("CK", "Christine Kirschner", "Assistenz Büro"), ("EM", "Elena Miller", "Qualitätsmanagement"), ("HL", "Harald Listl", "Hausmeister, technische Betreuung, Schreiner")] team = "".join(f'''
    {chev_mark("")}Foto folgt
    {n}{r}
    ''' for ini, n, r in TEAM) + '''
    und viele mehrgeschätzte Kolleginnen und Kollegen
    ''' MAP_SVG = '''''' UNTERNEHMEN = page_hero("Unternehmen", "Das Original seit 2003.", "Hinter Kirschner Gebäudeservice stehen Qualität, Erfahrung, Kompetenz — und echte Freude an der Dienstleistung.") + f'''

    Unsere Philosophie

    Persönlich. Zuverlässig. Erstklassig.

    Seit 2003

    Aus einer Idee wurde eine Erfolgsgeschichte — unsere Kunden belohnen hochwertigen Service mit Treue.

    Aus der Region

    Sitz in Ergolding, Einsatz in Landshut und Umgebung. Kurze Wege, schnelle Reaktion.

    Engagiert

    Wir unterstützen Vereine und Projekte vor Ort und weltweit — vom Jugendfußball bis zum Schulessen in Nepal.

    Geschichte

    Seit 2003 gewachsen.

    {tl}

    Unser Team

    Gesichter statt Hotline.

    Sie sprechen mit Menschen, die Ihr Objekt kennen.

    {team}

    Anfahrt

    Hier finden Sie uns.

    Kirschner Gebäudeservice
    Etzstraße 45 · 84030 Ergolding

    {MAP_SVG} Kirschner Gebäudeservice
    ''' + cta_final("Lernen wir uns kennen.", "Wir freuen uns auf Ihre Anfrage, Ihren Auftrag — und natürlich über Ihr Feedback.", "theme-deep") page("unternehmen.html", "Unternehmen & Team — Kirschner Gebäudeservice Ergolding", "Kirschner Gebäudeservice in Ergolding — das Original seit 2003. Philosophie, Geschichte, Team und Anfahrt.", UNTERNEHMEN) # ====================================================================== # Karriere # ====================================================================== JOBS = [ ("Handwerker / Hausmeister", ["Teilzeit", "Vollzeit", "auch Ga-La-Bauer, Glas- & Solarreiniger"], ["Erfahrung im jeweiligen Bereich", "Blick für Sauberkeit und Qualität", "Freundlichkeit, Teamfähigkeit & Motivation", "Ambition, Verantwortung zu übernehmen"], ["Sicherer Arbeitsplatz — krisenfest und zukunftssicher", "Weit übertarifliche Bezahlung und klare Aufstiegspläne", "Hochwertige Arbeitskleidung", "Boni: Spritgeld, Urlaubs- & Weihnachtsgeld, Erfolgsbonus", "Starkes Team, das sich gegenseitig unterstützt"], ["Du sorgst dafür, dass sich unsere Kunden zuhause wohlfühlen — Sauberkeit in Deinen festen Objekten hat für Dich Priorität. Gemeinsam mit Kollegen pflegst Du Gärten und Grünflächen, reinigst Tiefgaragen mit modernen Maschinen und erlebst den Vorher-Nachher-Effekt.", "Im Winter sorgst Du mit unseren Fahrzeugen bei Schnee und Eis für Sicherheit. Mit handwerklichem Geschick zeigen wir Dir, wie Du mit Reparaturen unsere Kunden begeisterst. Viel Zeit an der frischen Luft, gut strukturierte Arbeit mit unserer eigenen App — und keine permanenten Überstunden, keine Arbeit am Freitagnachmittag oder Samstag."], "Bewerbung: Handwerker / Hausmeister (TZ/VZ)"), ("Reinigungskraft", ["Minijob", "m/w/d"], ["Pünktlichkeit, Ehrlichkeit, Fleiß und Zuverlässigkeit", "Sauberes, gepflegtes Erscheinungsbild und gute Umgangsformen", "Blick für Sauberkeit", "Gutes Deutsch", "Du lebst den Teamgedanken", "Idealerweise Erfahrung im Reinigungsbereich"], ["Tarifliche Vergütung sowie Gutscheine (z. B. Tanken)", "Flexible Zeiteinteilung, die zu Deinem Leben passt", "30 Arbeitstage bezahlter Urlaub", "Lohnfortzahlung im Krankheitsfall", "Deine „eigenen“ festen Objekte — kein Springer", "Sehr kollegiales Betriebsklima", "Arbeitszeit einfach per App am Handy erfassen"], ["Wir sind ein familiäres und jung gebliebenes Unternehmen und suchen Dich, wenn Du Dich in diesen Punkten wiederfindest."], "Bewerbung: Reinigungskraft (Minijob)"), ("Hausmeister", ["Minijob", "m/w/d"], ["Pünktlichkeit, Ehrlichkeit, Fleiß und Zuverlässigkeit", "Sauberes, gepflegtes Erscheinungsbild und gute Umgangsformen", "Blick für Sauberkeit", "Gutes Deutsch", "Du arbeitest gern im Team", "Idealerweise Erfahrung im Garten oder handwerklich"], ["Übertarifliche Vergütung", "Prämien wie Gutscheine (z. B. Tanken)", "Flexible Zeiteinteilung", "30 Arbeitstage bezahlter Urlaub", "Lohnfortzahlung im Krankheitsfall", "Abwechslungsreich — indoor und outdoor", "Moderne Maschinen und Fuhrpark", "Arbeitszeit einfach per App erfassen"], ["Wir sind ein familiäres und jung gebliebenes Unternehmen und suchen Dich, wenn Du Dich in diesen Punkten wiederfindest."], "Bewerbung: Hausmeister (Minijob)"), ] APPLY_BODY = "Hallo Herr Kirschner,\n\nich interessiere mich für die Stelle und möchte mich kurz vorstellen:\n\nName:\nTelefon:\nErfahrung:\nFrühester Start:\n\nViele Grüße\n" jobs = "".join(f'''

    {t}

    {"".join(f"{m}" for m in meta)}
    {"".join(f"

    {p}

    " for p in text)}

    Das bringst Du mit

      {"".join(f"
    • {x}
    • " for x in need)}

    Das bekommst Du

      {"".join(f"
    • {x}
    • " for x in give)}
    ''' for i, (t, meta, need, give, text, subj) in enumerate(JOBS)) BENEFITS = [("Übertarifliche Bezahlung", "Dein Einsatz wird fair belohnt — mit klaren Aufstiegsplänen."), ("Keine Freitagnachmittage", "Keine permanenten Überstunden, kein Samstag — Zeit für Familie und Freunde."), ("Feste Objekte", "Du betreust Deine eigenen Objekte, statt ständig einzuspringen."), ("Boni & Gutscheine", "Spritgeld, Urlaubs- und Weihnachtsgeld, Erfolgsbonus."), ("Moderne Ausstattung", "Hochwertige Arbeitskleidung, moderne Maschinen, eigener Fuhrpark."), ("Alles per App", "Gut strukturierte Arbeit und Zeiterfassung einfach am Handy.")] KARRIERE = page_hero("Karriere", "Bock auf einen vielseitigen Job?", "Viel Zeit an der frischen Luft statt in der Industriehalle, überaus faire Bezahlung und ein Team, das zusammenhält. Bewirb Dich — wir freuen uns auf ein Gespräch bei einem Espresso.", f'
    Offene Stellen {I_ARROW}
    ') + f'''

    Was uns ausmacht

    Arbeit, die man gern macht.

      {"".join(f'
    • {b}{s}
    • ' for b, s in BENEFITS)}

    Offene Stellen

    Wir stellen ein.

    Bewirb Dich ganz einfach per E-Mail oder Telefon — ein Lebenslauf ist schön, aber kein Muss.

    {jobs}
    ''' + cta_final("Interesse? Melde Dich!", "Ruf uns an oder schreib uns eine kurze E-Mail. Wir melden uns schnell bei Dir.") page("karriere.html", "Karriere — Hausmeister, Handwerker & Reinigungskräfte gesucht | Kirschner Gebäudeservice", "Wir stellen ein: Hausmeister, Handwerker, Ga-La-Bauer, Glas- & Solarreiniger und Reinigungskräfte in Landshut und Ergolding. Übertarifliche Bezahlung, starkes Team.", KARRIERE) # ====================================================================== # Kontakt # ====================================================================== KONTAKT = page_hero("Kontakt", "Wir sind für Sie da.", "Schreiben Sie uns oder rufen Sie an — wir freuen uns auf Ihre Anfragen, Aufträge und natürlich über Ihr Feedback.") + f'''

    Adresse

    Mitten in Ergolding.

    Kirschner Gebäudeservice
    Etzstraße 45 · 84030 Ergolding
    Landshut-Ergolding

    {MAP_SVG} Kirschner Gebäudeservice
    ''' page("kontakt.html", "Kontakt — Kirschner Gebäudeservice Ergolding", "Kirschner Gebäudeservice, Etzstraße 45, 84030 Ergolding. Telefon 0871 / 14 26 91 01, Notruf 0160 / 836 57 53, info@kirschner-service.de.", KONTAKT) # ====================================================================== # Impressum & Datenschutz # ====================================================================== CREDITS = [("Titelbild (Wohngebäude)", "Tobias Wilden"), ("Treppenhaus", "Payam Moin Afshari"), ("Fensterreinigung", "Joshua Bowers"), ("PV-Reinigung", "Florida Solar Fix"), ("Heckenschnitt", "Mustafa Turhan"), ("Haustechnik", "Peter Herrmann"), ("Reparatur", "Theme Photos"), ("Winterdienst", "Bradley Andrews"), ("Glasfassade", "Priscilla Du Preez")] IMPRESSUM = page_hero("Rechtliches", "Impressum", "Angaben gemäß § 5 Digitale-Dienste-Gesetz (DDG).") + f'''
    ''' page("impressum.html", "Impressum — Kirschner Gebäudeservice", "Impressum von Kirschner Gebäudeservice, Etzstraße 45, 84030 Ergolding.", IMPRESSUM) DATENSCHUTZ = page_hero("Rechtliches", "Datenschutz", "Kurz gesagt: Diese Website setzt keine Cookies, verwendet kein Tracking und lädt nichts von fremden Servern.") + f'''
    ''' page("datenschutz.html", "Datenschutz — Kirschner Gebäudeservice", "Datenschutzerklärung von Kirschner Gebäudeservice: keine Cookies, kein Tracking, keine Fremdinhalte.", DATENSCHUTZ)