PageSourceSearch

https://www.koenig-photographie.de/portfolio/overview/

html koenig-photographie.de collected 2026-10-07 03:52:40 UTC 149,789 bytes, 1,434 lines download raw bytes

1<!DOCTYPE html><html lang="de" data-theme="dark"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="color-scheme" content="only light"><link rel="preconnect" href="https://api.koenig-photographie.de"><link rel="preconnect" href="https://cdn.cookiehub.eu"><link rel="preload" as="style" href="https://cdn.cookiehub.eu/c2/css/5591b03d.css"><link rel="preload" as="fetch" crossorigin href="https://cdn.cookiehub.eu/client/5591b03d/de.json">
1<script>
2      document.documentElement.classList.add('js');
3    </script>
3<script>
4      window.dataLayer = window.dataLayer || [];
5      function gtag() {
6        dataLayer.push(arguments);
7      }
8      gtag('consent', 'default', {
9        ad_storage: 'denied',
10        ad_user_data: 'denied',
11        ad_personalization: 'denied',
12        analytics_storage: 'denied',
13        functionality_storage: 'denied',
14        personalization_storage: 'denied',
15        security_storage: 'granted',
16        wait_for_update: 2000,
17      });
18      gtag('set', 'ads_data_redaction', true);
19      gtag('set', 'url_passthrough', true);
20    </script>
20<script src="https://cdn.cookiehub.eu/c2/5591b03d.js"></script>
20<script>
21      (() => {
22        window.__koenigLoadCookiehub = () => {
23          if (window.__koenigCookiehubGeladen) return;
24          if (!window.cookiehub || !document.body) return;
25          window.__koenigCookiehubGeladen = true;
26          window.cookiehub.load({});
27        };
28
29        document.addEventListener('DOMContentLoaded', window.__koenigLoadCookiehub, { once: true });
30        window.__koenigLoadCookiehub();
31      })();
32    </script>
32<link rel="preload" as="style" href="https://api.koenig-photographie.de/addin/styles/cookiehub-theme.css" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="https://api.koenig-photographie.de/addin/styles/cookiehub-theme.css"></noscript>
32<script src="https://api.koenig-photographie.de/addin/scripts/cookiehub-tweak.js" defer></script>
32<script>
33      (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push(
34      {'gtm.start': new Date().getTime(),event:'gtm.js'});
35      var f=d.getElementsByTagName(s)[0],j=d.createElement(s);
36      j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i;
37      f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-TWLQ42Q');
38    </script>
38<script>window.KOENIG_CONTACT_TONE = "sie";</script>
38<script src="https://api.koenig-photographie.de/addin/context/koenig-context.js" defer></script>
38<script>
39      (() => {
40        const syncGenderAttribute = () => {
41          const gender = window.koenigContext && window.koenigContext.derived && window.koenigContext.derived.gender;
42
43          if (gender === 'm' || gender === 'w') {
44            document.documentElement.setAttribute('data-koenig-gender', gender);
45            return;
46          }
47
48          document.documentElement.removeAttribute('data-koenig-gender');
49        };
50
51        syncGenderAttribute();
52        window.addEventListener('koenig:context:ready', syncGenderAttribute, { once: true });
53        document.addEventListener('koenig:context:ready', syncGenderAttribute, { once: true });
54      })();
55    </script>
55<link rel="preload" as="image" href="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-hero/f3b8bc56_full.avif" type="image/avif" fetchpriority="high"><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=Cormorant+Garamond:ital,wght@1,300;1,400;1,500&display=swap" rel="stylesheet"><title>Portrait-Fotografie München &amp; Berlin | König Photographie</title><meta name="description" content="Professionelle Mitarbeiterfotos, Business-Portraits &amp; Bewerbungsfotos in München und Berlin. Mobiles Fotostudio vor Ort. Jetzt unverbindlich anfragen."><meta name="robots" content="index,follow"><link rel="canonical" href="https://www.koenig-photographie.de/portfolio/overview/"><meta property="og:title" content="Portrait-Fotografie München &amp; Berlin | König Photographie"><meta property="og:description" content="Professionelle Mitarbeiterfotos, Business-Portraits &amp; Bewerbungsfotos in München und Berlin. Mobiles Fotostudio vor Ort. Jetzt unverbindlich anfragen."><meta property="og:image" content="https://api.koenig-photographie.de/lp-assets/portfolio-overview/hero/dennis-overview-hero.webp"><meta property="og:url" content="https://www.koenig-photographie.de/portfolio/overview/"><meta property="og:type" content="website"><meta property="og:site_name" content="König Photographie"><meta property="og:locale" content="de_DE"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Portrait-Fotografie München &amp; Berlin | König Photographie"><meta name="twitter:description" content="Professionelle Mitarbeiterfotos, Business-Portraits &amp; Bewerbungsfotos in München und Berlin. Mobiles Fotostudio vor Ort. Jetzt unverbindlich anfragen."><meta name="twitter:image" content="https://api.koenig-photographie.de/lp-assets/portfolio-overview/hero/dennis-overview-hero.webp">
55<script type="application/ld+json">{"@context":"https://schema.org","@type":"Service","name":"Portrait-Fotografie München & Berlin","description":"Professionelle Mitarbeiterfotos, Business-Portraits & Bewerbungsfotos in München und Berlin. Mobiles Fotostudio vor Ort. Jetzt unverbindlich anfragen.","serviceType":"Portraitfotografie","url":"https://www.koenig-photographie.de/portfolio/overview/","areaServed":[{"@type":"City","name":"München"},{"@type":"City","name":"Berlin"}],"provider":{"@type":"LocalBusiness","name":"König Photographie","url":"https://www.koenig-photographie.de","telephone":"+49 1517 0066599","email":"[email protected]"}}</script>
55<link rel="icon" type="image/svg+xml" href="/favicon.svg?v=20260519"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png?v=20260519"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=20260519"><style>.booking-cta-pair[data-astro-cid-b3uply77]{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem;width:100%}.booking-cta-pair__primary[data-astro-cid-b3uply77],.booking-cta-pair__secondary[data-astro-cid-b3uply77]{width:100%;min-height:3rem;border-radius:.45rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;font-weight:300;line-height:1.1;transition:background-color .2s ease,color .2s ease,border-color .2s ease;padding:.85rem 1rem}.booking-cta-pair__primary[data-astro-cid-b3uply77]{border:1px solid var(--color-gold);background:var(--color-gold);color:var(--color-koenig-weiss)}.booking-cta-pair__primary[data-astro-cid-b3uply77]:hover{background:var(--color-gold-dark);border-color:var(--color-gold-dark)}.booking-cta-pair__secondary[data-astro-cid-b3uply77]{border:1px solid rgba(168,131,58,.55);background:transparent;color:var(--color-gold)}.booking-cta-pair__secondary[data-astro-cid-b3uply77]:hover{border-color:var(--color-gold);background:#a8833a1a}.booking-cta-pair--hero[data-astro-cid-b3uply77] .booking-cta-pair__secondary[data-astro-cid-b3uply77]{color:var(--color-koenig-weiss);border-color:#ffffffb8;background:#0f0c0a47}.booking-cta-pair--hero[data-astro-cid-b3uply77] .booking-cta-pair__secondary[data-astro-cid-b3uply77]:hover{border-color:#ffffffe6;background:#0f0c0a70}.booking-cta-pair--compact[data-astro-cid-b3uply77] .booking-cta-pair__primary[data-astro-cid-b3uply77],.booking-cta-pair--compact[data-astro-cid-b3uply77] .booking-cta-pair__secondary[data-astro-cid-b3uply77]{min-height:2.75rem;font-size:.68rem;letter-spacing:.16em}@media(min-width:768px){.booking-cta-pair[data-astro-cid-b3uply77]{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:.85rem}}
56</style>
57<link rel="stylesheet" href="/_astro/navigation.tcE3ZYux.css">
58<link rel="stylesheet" href="/_astro/Layout.hshUlwN6.css">
59<link rel="stylesheet" href="/_astro/overview.Bfz4FRGe.css"></head> <body class="bg-beige text-koenig-text font-sans font-light">  
59<script>window.__koenigLoadCookiehub && window.__koenigLoadCookiehub();</script>
vendor: 69 bytes, line 59
59 <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=
59GTM-TWLQ42Q
vendor: 84 bytes, line 59
59" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> 
59<a href="#main" class="sr-only focus:not-sr-only focus:fixed focus:left-4 focus:top-4 focus:z-50 focus:rounded-full focus:bg-koenig-text focus:px-4 focus:py-2 focus:text-koenig-weiss">
60Zum Inhalt springen
61</a>   <main id="main" class="min-h-screen">       <header class="site-nav-shell site-nav-shell--overlay is-inverted" data-astro-cid-pux6a34n><div class="site-nav__container" data-site-nav-container data-astro-cid-pux6a34n><div class="site-nav__main" data-site-nav-shell data-astro-cid-pux6a34n><a href="/" class="site-nav__brand" aria-label="König Photographie Startseite" data-astro-cid-pux6a34n><img src="https://api.koenig-photographie.de/lp-assets/_shared/logos/koenig-logo-dark.svg" alt="" class="site-nav__logo" loading="lazy" decoding="async" data-astro-cid-pux6a34n></a><button type="button" class="site-nav__toggle" aria-expanded="false" aria-controls="hero-mobile-menu" data-site-nav-toggle data-astro-cid-pux6a34n><span class="sr-only" data-astro-cid-pux6a34n>Menü öffnen</span><span class="site-nav__toggle-box" aria-hidden="true" data-astro-cid-pux6a34n><span class="site-nav__toggle-bar" data-astro-cid-pux6a34n></span><span class="site-nav__toggle-bar" data-astro-cid-pux6a34n></span><span class="site-nav__toggle-bar" data-astro-cid-pux6a34n></span></span></button><nav class="site-nav__menu" aria-label="Hauptnavigation" data-astro-cid-pux6a34n><a class="site-nav__link" href="/about" data-astro-cid-pux6a34n>ÜBER</a><a class="site-nav__link" href="/shooting" data-astro-cid-pux6a34n>SHOOTING</a><a class="site-nav__link is-current" href="/portfolio/overview" data-astro-cid-pux6a34n>PORTFOLIO</a></nav><button type="button" class="site-nav__desktop-cta kontaktopener" data-contact-modal data-contact-query data-astro-cid-pux6a34n>Jetzt anfragen</button><nav id="hero-mobile-menu" class="site-nav__mobile-menu" aria-label="Mobile Navigation" data-site-mobile-menu data-astro-cid-pux6a34n><a class="site-nav__mobile-link" href="/about" data-astro-cid-pux6a34n>ÜBER</a><a class="site-nav__mobile-link" href="/shooting" data-astro-cid-pux6a34n>SHOOTING</a><a class="site-nav__mobile-link is-current" href="/portfolio/overview" data-astro-cid-pux6a34n>PORTFOLIO</a><div class="site-nav__mobile-subnav" data-astro-cid-pux6a34n><a class="site-nav__mobile-link site-nav__mobile-link--world is-current" href="/portfolio/overview" data-astro-cid-pux6a34n>overview</a><a class="site-nav__mobile-link site-nav__mobile-link--world" href="/office" data-astro-cid-pux6a34n>office</a><a class="site-nav__mobile-link site-nav__mobile-link--world" href="/business-portrait" data-astro-cid-pux6a34n>portrait</a><a class="site-nav__mobile-link site-nav__mobile-link--world" href="/events" data-astro-cid-pux6a34n>event</a><a class="site-nav__mobile-link site-nav__mobile-link--world" href="/artists" data-astro-cid-pux6a34n>artists</a><a class="site-nav__mobile-link site-nav__mobile-link--world" href="/portfolio/travel" data-astro-cid-pux6a34n>travel</a><details class="site-nav__mobile-subgroup" data-astro-cid-pux6a34n><summary class="site-nav__mobile-link site-nav__mobile-subsummary" data-astro-cid-pux6a34n><span class="site-nav__mobile-caret" aria-hidden="true" data-astro-cid-pux6a34n>▾</span>galerie</summary><a class="site-nav__mobile-link site-nav__mobile-sublink" href="/portfolio/people" data-astro-cid-pux6a34n>people</a><a class="site-nav__mobile-link site-nav__mobile-sublink" href="/portfolio/business" data-astro-cid-pux6a34n>business</a><a class="site-nav__mobile-link site-nav__mobile-sublink" href="/portfolio/serien" data-astro-cid-pux6a34n>serien</a></details></div><button type="button" class="site-nav__mobile-link site-nav__mobile-link--cta kontaktopener" data-contact-modal data-contact-query data-astro-cid-pux6a34n>Jetzt anfragen</button></nav></div></div></header>
61<script>
62  (function () {
63  // Erst nach DOMContentLoaded initialisieren: das Overlay-Navi-Script wird
64  // VOR der echten Navi geparst; bei sofortiger Ausführung wäre die echte Navi
65  // (data-site-nav-glass) noch nicht im DOM und der Glas-Effekt würde nie greifen.
66  function initNav() {
67  // Einmal-Guard: das Script wird pro Navi-Instanz gerendert (echte + Overlay),
68  // soll aber nur EINMAL laufen (sonst doppelte Event-Listener am Toggle).
69  if (window.__koenigNavInit) return;
70  window.__koenigNavInit = true;
71
72  // Auf die echte Navi scopen: die invertierte Overlay-Navi teilt sich Klassen
73  // und data-Attribute, hat aber KEIN data-site-nav-glass -> diese Queries
74  // greifen nie auf die Overlay-Elemente zu.
75  const navigationGlassShell = document.querySelector('[data-site-nav-glass]');
76  const navigationGlassContainer = navigationGlassShell?.querySelector('[data-site-nav-container]') ?? null;
77  const navigationAnchorBelowHero = navigationGlassShell?.hasAttribute('data-site-nav-anchor-below-hero');
78  const navigationStickyPlacement = navigationGlassShell?.hasAttribute('data-site-nav-sticky');
79  const navigationShell = navigationGlassShell?.querySelector('[data-site-nav-shell]') ?? null;
80  const navigationDesktopMenu = navigationGlassShell?.querySelector('.site-nav__menu') ?? null;
81  const navigationDesktopCta = navigationGlassShell?.querySelector('.site-nav__desktop-cta') ?? null;
82  const navigationSubnav = navigationGlassShell?.querySelector('.site-nav__subnav') ?? null;
83  const navigationToggle = navigationGlassShell?.querySelector('[data-site-nav-toggle]') ?? null;
84  const navigationClose = navigationGlassShell?.querySelector('[data-site-nav-close]') ?? null;
85  const mobileMenu = navigationGlassShell?.querySelector('[data-site-mobile-menu]') ?? null;
86
87  if (navigationGlassShell instanceof HTMLElement && navigationGlassContainer instanceof HTMLElement) {
88    const syncGlassState = () => {
89      const viewportRange = Math.max(window.innerHeight, 1);
90      const progress = Math.max(0, Math.min(1, window.scrollY / viewportRange));
91      const heroElement = navigationAnchorBelowHero ? document.getElementById('po-hero') : null;
92      const heroOffset = heroElement instanceof HTMLElement ? Math.max(0, heroElement.offsetHeight - window.scrollY) : 0;
93      const stickyProgress = navigationAnchorBelowHero && heroElement instanceof HTMLElement
94        ? Math.max(0, Math.min(1, (window.scrollY - heroElement.offsetHeight) / 180))
95        : navigationStickyPlacement
96          ? navigationGlassShell.getBoundingClientRect().top <= 0.5 ? 1 : 0
97        : progress;
98      const bgOpacity = progress * 0.86;
99      const borderOpacity = progress * 0.18;
100      const shadowOpacity = stickyProgress * 0.12;
101      const blurValue = progress * 14;
102
103      if (navigationAnchorBelowHero) {
104        navigationGlassShell.style.transform = heroOffset > 0 ? `translateY(${heroOffset}px)` : 'translateY(0px)';
105      } else {
106        navigationGlassShell.style.transform = 'translateY(0px)';
107      }
108      navigationGlassContainer.style.opacity = '1';
109      navigationGlassContainer.style.backgroundColor = `rgba(var(--koenig-bg-rgb), ${bgOpacity})`;
110      navigationGlassContainer.style.borderColor = `rgb(201 169 110 / ${borderOpacity})`;
111      navigationGlassContainer.style.borderTopColor = 'transparent';
112      navigationGlassContainer.style.boxShadow = `0 18px 60px rgba(var(--koenig-text-rgb), ${shadowOpacity})`;
113      navigationGlassContainer.style.backdropFilter = `blur(${blurValue}px)`;
114      navigationGlassContainer.style.webkitBackdropFilter = `blur(${blurValue}px)`;
115      navigationGlassContainer.style.setProperty('--site-nav-glow-opacity', String(stickyProgress * 0.9));
116      navigationGlassContainer.style.setProperty('--site-nav-shell-margin-top', '0px');
117      navigationGlassContainer.style.setProperty('--site-nav-shell-pad-bottom', `${6 - progress * 2}px`);
118      navigationGlassContainer.style.setProperty('--site-nav-main-pad-y', `${12 - progress * 7}px`);
119      navigationGlassContainer.style.setProperty('--site-nav-main-gap-bottom', `${4 - progress * 2}px`);
120      navigationGlassContainer.style.setProperty('--site-nav-subnav-gap-bottom', `${20 - progress * 13}px`);
121
122      if (navigationShell instanceof HTMLElement) {
123        navigationShell.style.marginTop = `${6 - progress * 4}px`;
124        navigationShell.style.marginBottom = `${4 - progress * 2}px`;
125        navigationShell.style.transform = `translateY(${progress * -4}
125px)`;
126      }
127
128      if (navigationDesktopMenu instanceof HTMLElement) {
129        navigationDesktopMenu.style.marginBottom = `${4 - progress * 3}px`;
130      }
131
132      if (navigationDesktopCta instanceof HTMLElement) {
133        navigationDesktopCta.style.marginBottom = `${4 - progress * 3}px`;
134      }
135
136      if (navigationSubnav instanceof HTMLElement) {
137        navigationSubnav.style.marginTop = `${2 - progress * 2}px`;
138        navigationSubnav.style.marginBottom = `${20 - progress * 13}px`;
139        navigationSubnav.style.transform = `translateY(${progress * -8}px)`;
140      }
141    };
142
143    syncGlassState();
144    let lastScrollY = window.scrollY;
145
146    const trackGlassState = () => {
147      const currentScrollY = window.scrollY;
148
149      if (navigationAnchorBelowHero || navigationStickyPlacement || currentScrollY !== lastScrollY) {
150        lastScrollY = currentScrollY;
151        syncGlassState();
152      }
153
154      window.requestAnimationFrame(trackGlassState);
155    };
156
157    window.requestAnimationFrame(trackGlassState);
158    window.addEventListener('resize', syncGlassState, { passive: true });
159  }
160
161  if (
162    navigationShell instanceof HTMLElement &&
163    navigationToggle instanceof HTMLButtonElement &&
164    mobileMenu instanceof HTMLElement
165  ) {
166    const syncOffset = () => {
167      navigationShell.style.setProperty('--site-nav-offset', `${navigationShell.offsetHeight}px`);
168      // Mobile-Menü direkt unter dem Burger andocken: Top = Burger-Unterkante
169      // (offsetTop/-Height relativ zu .site-nav__main). Nur setzen wenn der
170      // Toggle sichtbar ist (>991px ist er display:none -> Höhe 0).
171      const toggleBottom = navigationToggle.offsetTop + navigationToggle.offsetHeight;
172      if (toggleBottom > 0) {
173        navigationShell.style.setProperty('--site-nav-menu-top', `${toggleBottom}px`);
174      }
175    };
176
177    const closeMenu = () => {
178      navigationToggle.setAttribute('aria-expanded', 'false');
179      navigationShell.classList.remove('is-open');
180      document.documentElement.classList.remove('site-nav-open');
181    };
182
183    const toggleMenu = () => {
184      const expanded = navigationToggle.getAttribute('aria-expanded') === 'true';
185      navigationToggle.setAttribute('aria-expanded', String(!expanded));
186      navigationShell.classList.toggle('is-open', !expanded);
187      document.documentElement.classList.toggle('site-nav-open', !expanded);
188    };
189
190    syncOffset();
191    window.addEventListener('resize', syncOffset, { passive: true });
192    navigationToggle.addEventListener('click', toggleMenu);
193    navigationClose?.addEventListener('click', closeMenu);
194    mobileMenu.querySelectorAll('a, button').forEach((link) => link.addEventListener('click', closeMenu));
195    window.addEventListener('keydown', (event) => {
196      if (event.key === 'Escape') {
197        closeMenu();
198      }
199    });
200  }
201
202  // Galerie-Dropdown in der Desktop-Subnav: Klick-Toggle, schließt bei
203  // Outside-Click und Escape.
204  document.querySelectorAll('[data-subnav-dropdown]').forEach((dropdown) => {
205    const trigger = dropdown.querySelector('[data-subnav-trigger]');
206    if (!(trigger instanceof HTMLButtonElement)) return;
207    const closeDropdown = () => {
208      dropdown.classList.remove('is-open');
209      trigger.setAttribute('aria-expanded', 'false');
210    };
211    trigger.addEventListener('click', (event) => {
212      event.stopPropagation();
213      if (trigger.getAttribute('aria-expanded') === 'true') {
214        closeDropdown();
215      } else {
216        dropdown.classList.add('is-open');
217        trigger.setAttribute('aria-expanded', 'true');
218      }
219    });
220    document.addEventListener('click', (event) => {
221      if (!dropdown.contains(event.target)) closeDropdown();
222    });
223    document.addEventListener('keydown', (event) => {
224      if (event.key === 'Escape') closeDropdown();
225    });
226  });
227
228  // Invertierte Overlay-Navi: eigener, gescopeter Mobile-Toggle.
229  const overlayShell = document.querySelector('.site-nav-shell--overlay');
230  if (overlayShell instanceof HTMLElement) {
231    const ovMain = overlayShell.querySelector('[data-site-nav-shell]');
232    const ovToggle = overlayShell.querySelector('[data-site-nav-toggle]');
233    const ovClose = overlayShell.querySelector('[data-site-nav-close]');
234    const ovMenu = overlayShell.querySelector('[data-site-mobile-menu]');
235    if (ovMain instanceof HTMLElement && ovToggle instanceof HTMLButtonElement) {
236      // Overlay-Menü ebenfalls direkt an die Burger-Unterkante andocken
237      const ovSyncMenuTop = () => {
238        const bottom = ovToggle.offsetTop + ovToggle.offsetHeight;
239        if (bottom > 0) ovMain.style.setProperty('--site-nav-menu-top', `${bottom}px`);
240      };
241      ovSyncMenuTop();
242      window.addEventListener('resize', ovSyncMenuTop, { passive: true });
243      const ovCloseMenu = () => {
244        ovToggle.setAttribute('aria-expanded', 'false');
245        ovMain.classList.remove('is-open');
246        document.documentElement.classList.remove('site-nav-open');
247      };
248      ovToggle.addEventListener('click', () => {
249        const expanded = ovToggle.getAttribute('aria-expanded') === 'true';
250        ovToggle.setAttribute('aria-expanded', String(!expanded));
251        ovMain.classList.toggle('is-open', !expanded);
252        document.documentElement.classList.toggle('site-nav-open', !expanded);
253      });
254      ovClose?.addEventListener('click', ovCloseMenu);
255      ovMenu?.querySelectorAll('a, button').forEach((link) => link.addEventListener('click', ovCloseMenu));
256    }
257  }
258  }
259
260  if (document.readyState !== 'loading') {
261    initNav();
262  } else {
263    document.addEventListener('DOMContentLoaded', initNav, { once: true });
264  }
265  })();
266</script>
266 <section class="po-hero" id="po-hero"> <div class="po-stage"> <div class="po-media"> <div class="po-layer" data-layer="0" role="img" aria-label="Office- &amp; Mitarbeiterfotografie – Team im Meeting"> <div class="po-layer-img" style="background-image: url('https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-hero/f3b8bc56_full.avif');"></div> </div><div class="po-layer" data-layer="1" role="img" aria-label="Business Portrait vor Neon-Schriftzug"> <div class="po-layer-img" style data-bg="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-hero/321c1829_full.avif"></div> </div><div class="po-layer" data-layer="2" role="img" aria-label="Event-Fotografie – Vortrag auf einem Firmen-Event / Konferenz"> <div class="po-layer-img" style data-bg="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-hero/5879cd95_full.avif"></div> </div><div class="po-layer" data-layer="3" role="img" aria-label="Schauspieler-Portrait – ausdrucksstarkes Casting-Foto"> <div class="po-layer-img" style data-bg="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-hero/98ba2909_full.avif"></div> </div><div class="po-layer" data-layer="4" role="img" aria-label="Travel- &amp; Reportagefotografie – Portrait auf Bali"> <div class="po-layer-img" style data-bg="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-hero/dff84ac5_full.avif"></div> </div> </div> <div class="po-veil"></div> <!-- Intro-Vorhang: Bild ist sofort gemalt (LCP), dieser dunkle Layer lueftet sanft --> <div class="po-curtain" data-po-curtain></div> <div class="po-rail"> <p class="po-rail-eyebrow">Fünf Welten · Eine Handschrift</p> <div class="po-rail-list"> <div class="po-rail-item is-active" data-i="0" data-href="/office" role="button" tabindex="0" aria-label="Welt anzeigen: office. Mitarbeiter- &amp; Office-Fotografie für Unternehmen. Sichtbar stark."> <span class="po-num">01</span> <span class="po-word">office<span class="po-anno po-anno--down"> <svg class="po-anno-elbow" width="50" height="40" viewBox="0 0 50 40" fill="none" aria-hidden="true"> <path d="M1 20 V38 H50" stroke="currentColor" stroke-width="1" vector-effect="non-scaling-stroke" pathLength="100"></path> </svg> <span class="po-anno-col"> <span class="po-anno-text" aria-hidden="true">Mitarbeiter- &amp; Office-Fotografie für Unternehmen. <span class="po-anno-punch">Sichtbar stark.</span></span> <a class="po-anno-link" href="/office">Mehr erfahren <span aria-hidden="true">→</span></a> </span> </span></span> </div><div class="po-rail-item" data-i="1" data-href="/business-portrait" role="button" tabindex="0" aria-label="Welt anzeigen: portrait. Business-Portraits für Unternehmer, Führungskräfte &amp; Angestellte. Wirkungsstark."> <span class="po-num">02</span> <span class="po-word">portrait<span class="po-anno po-anno--up"> <svg class="po-anno-elbow" width="50" height="40" viewBox="0 0 50 40" fill="none" aria-hidden="true"> <path d="M1 20 V2 H50" stroke="currentColor" stroke-width="1" vector-effect="non-scaling-stroke" pathLength="100"></path> </svg> <span class="po-anno-col"> <span class="po-anno-text" aria-hidden="true">Business-Portraits für Unternehmer, Führungskräfte &amp; Angestellte. <span class="po-anno-punch">Wirkungsstark.</span></span> <a class="po-anno-link" href="/business-portrait">Mehr erfahren <span aria-hidden="true">→</span></a> </span> </span></span> </div><div class="po-rail-item" data-i="2" data-href="/events" role="button" tabindex="0" aria-label="Welt anzeigen: event. Event-Reportagen für Firmen &amp; Messen. Eindrucksvoll dokumentiert."> <span class="po-num">03</span> <span class="po-word">event<span class="po-anno po-anno--down"> <svg class="po-anno-elbow" width="50" height="40" viewBox="0 0 50 40" fill="none" aria-hidden="true"> <path d="M1 20 V38 H50" stroke="currentColor" stroke-width="1" vector-effect="non-scaling-stroke" pathLength="100"></path> </svg> <span class="po-anno-col"> <span class="po-anno-text" aria-hidden="true">Event-Reportagen für Firmen &amp;
266 Messen. <span class="po-anno-punch">Eindrucksvoll dokumentiert.</span></span> <a class="po-anno-link" href="/events">Mehr erfahren <span aria-hidden="true">→</span></a> </span> </span></span> </div><div class="po-rail-item" data-i="3" data-href="/artists" role="button" tabindex="0" aria-label="Welt anzeigen: artists. Casting- &amp; Künstlerportraits für Bühne &amp; Film. Stark inszeniert."> <span class="po-num">04</span> <span class="po-word">artists<span class="po-anno po-anno--up"> <svg class="po-anno-elbow" width="50" height="40" viewBox="0 0 50 40" fill="none" aria-hidden="true"> <path d="M1 20 V2 H50" stroke="currentColor" stroke-width="1" vector-effect="non-scaling-stroke" pathLength="100"></path> </svg> <span class="po-anno-col"> <span class="po-anno-text" aria-hidden="true">Casting- &amp; Künstlerportraits für Bühne &amp; Film. <span class="po-anno-punch">Stark inszeniert.</span></span> <a class="po-anno-link" href="/artists">Mehr erfahren <span aria-hidden="true">→</span></a> </span> </span></span> </div><div class="po-rail-item" data-i="4" data-href="/portfolio/travel" role="button" tabindex="0" aria-label="Welt anzeigen: travel. Reise- &amp; Reportagefotografie mit Charakter. Echt erzählt."> <span class="po-num">05</span> <span class="po-word">travel<span class="po-anno po-anno--down"> <svg class="po-anno-elbow" width="50" height="40" viewBox="0 0 50 40" fill="none" aria-hidden="true"> <path d="M1 20 V38 H50" stroke="currentColor" stroke-width="1" vector-effect="non-scaling-stroke" pathLength="100"></path> </svg> <span class="po-anno-col"> <span class="po-anno-text" aria-hidden="true">Reise- &amp; Reportagefotografie mit Charakter. <span class="po-anno-punch">Echt erzählt.</span></span> <a class="po-anno-link" href="/portfolio/travel">Mehr erfahren <span aria-hidden="true">→</span></a> </span> </span></span> </div> </div> <p class="po-rail-note" data-rail-note></p> <a class="po-rail-link" data-rail-link href="#">Mehr erfahren <span aria-hidden="true">→</span></a> </div> </div> </section> <header class="site-nav-shell site-nav-shell--sticky" style="position: sticky; top: 0;" data-site-nav-glass data-site-nav-sticky data-astro-cid-pux6a34n><div class="site-nav__container" data-site-nav-container data-astro-cid-pux6a34n><div class="site-nav__main" data-site-nav-shell data-astro-cid-pux6a34n><a href="/" class="site-nav__brand" aria-label="König Photographie Startseite" data-astro-cid-pux6a34n><img src="https://api.koenig-photographie.de/lp-assets/_shared/logos/koenig-logo-dark.svg" alt="" class="site-nav__logo" loading="lazy" decoding="async" data-astro-cid-pux6a34n></a><button type="button" class="site-nav__toggle" aria-expanded="false" aria-controls="legal-mobile-menu" data-site-nav-toggle data-astro-cid-pux6a34n><span class="sr-only" data-astro-cid-pux6a34n>Menü öffnen</span><span class="site-nav__toggle-box" aria-hidden="true" data-astro-cid-pux6a34n><span class="site-nav__toggle-bar" data-astro-cid-pux6a34n></span><span class="site-nav__toggle-bar" data-astro-cid-pux6a34n></span><span class="site-nav__toggle-bar" data-astro-cid-pux6a34n></span></span></button><nav class="site-nav__menu" aria-label="Hauptnavigation" data-astro-cid-pux6a34n><a class="site-nav__link" href="/about" data-astro-cid-pux6a34n>ÜBER</a><a class="site-nav__link" href="/shooting" data-astro-cid-pux6a34n>SHOOTING</a><a class="site-nav__link is-current" style="padding-left: 9px; border-left-color: var(--color-koenig-text-80); color: var(--color-koenig-text); font-weight: 400;" href="/portfolio/overview" data-astro-cid-pux6a34n>PORTFOLIO</a></nav><button type="button" class="site-nav__desktop-cta kontaktopener" data-contact-modal data-contact-query data-astro-cid-pux6a34n>Jetzt anfragen</button><nav id="legal-mobile-menu" class="site-nav__mobile-menu" aria-label="Mobile Navigation" data-site-mobile-menu data-astro-cid-pux6a34n><a class="site-nav__mobile-link" href="/about" data-astro-cid-pux6a34n>ÜBER</a><a class="site-nav__mobile-link" href="/shooting" data-astro-cid-pux6a34n>SHOOTING</a><a class="site-nav__mobile-link is-current" href="/portfolio/overview" data-astro-cid-pux6a34n>PORTFOLIO</a>
266<div class="site-nav__mobile-subnav" data-astro-cid-pux6a34n><a class="site-nav__mobile-link site-nav__mobile-link--world is-current" href="/portfolio/overview" data-astro-cid-pux6a34n>overview</a><a class="site-nav__mobile-link site-nav__mobile-link--world" href="/office" data-astro-cid-pux6a34n>office</a><a class="site-nav__mobile-link site-nav__mobile-link--world" href="/business-portrait" data-astro-cid-pux6a34n>portrait</a><a class="site-nav__mobile-link site-nav__mobile-link--world" href="/events" data-astro-cid-pux6a34n>event</a><a class="site-nav__mobile-link site-nav__mobile-link--world" href="/artists" data-astro-cid-pux6a34n>artists</a><a class="site-nav__mobile-link site-nav__mobile-link--world" href="/portfolio/travel" data-astro-cid-pux6a34n>travel</a><details class="site-nav__mobile-subgroup" data-astro-cid-pux6a34n><summary class="site-nav__mobile-link site-nav__mobile-subsummary" data-astro-cid-pux6a34n><span class="site-nav__mobile-caret" aria-hidden="true" data-astro-cid-pux6a34n>▾</span>galerie</summary><a class="site-nav__mobile-link site-nav__mobile-sublink" href="/portfolio/people" data-astro-cid-pux6a34n>people</a><a class="site-nav__mobile-link site-nav__mobile-sublink" href="/portfolio/business" data-astro-cid-pux6a34n>business</a><a class="site-nav__mobile-link site-nav__mobile-sublink" href="/portfolio/serien" data-astro-cid-pux6a34n>serien</a></details></div><button type="button" class="site-nav__mobile-link site-nav__mobile-link--cta kontaktopener" data-contact-modal data-contact-query data-astro-cid-pux6a34n>Jetzt anfragen</button></nav></div><nav class="site-nav__subnav" aria-label="Portfolio-Navigation" data-astro-cid-pux6a34n><a href="/portfolio/overview" class="site-nav__subnav-link is-current" data-astro-cid-pux6a34n>overview</a><a href="/office" class="site-nav__subnav-link" data-astro-cid-pux6a34n>office</a><a href="/business-portrait" class="site-nav__subnav-link" data-astro-cid-pux6a34n>portrait</a><a href="/events" class="site-nav__subnav-link" data-astro-cid-pux6a34n>event</a><a href="/artists" class="site-nav__subnav-link" data-astro-cid-pux6a34n>artists</a><a href="/portfolio/travel" class="site-nav__subnav-link" data-astro-cid-pux6a34n>travel</a><div class="site-nav__subnav-group" data-subnav-dropdown data-astro-cid-pux6a34n><button type="button" class="site-nav__subnav-link site-nav__subnav-trigger" aria-expanded="false" aria-haspopup="true" data-subnav-trigger data-astro-cid-pux6a34n>galerie<span class="site-nav__subnav-caret" aria-hidden="true" data-astro-cid-pux6a34n>▾</span></button><div class="site-nav__subnav-panel" data-subnav-panel data-astro-cid-pux6a34n><a href="/portfolio/people" class="site-nav__subnav-sublink" data-astro-cid-pux6a34n>people</a><a href="/portfolio/business" class="site-nav__subnav-sublink" data-astro-cid-pux6a34n>business</a><a href="/portfolio/serien" class="site-nav__subnav-sublink" data-astro-cid-pux6a34n>serien</a></div></div></nav></div></header>
266<script>
267  (function () {
268  // Erst nach DOMContentLoaded initialisieren: das Overlay-Navi-Script wird
269  // VOR der echten Navi geparst; bei sofortiger Ausführung wäre die echte Navi
270  // (data-site-nav-glass) noch nicht im DOM und der Glas-Effekt würde nie greifen.
271  function initNav() {
272  // Einmal-Guard: das Script wird pro Navi-Instanz gerendert (echte + Overlay),
273  // soll aber nur EINMAL laufen (sonst doppelte Event-Listener am Toggle).
274  if (window.__koenigNavInit) return;
275  window.__koenigNavInit = true;
276
277  // Auf die echte Navi scopen: die invertierte Overlay-Navi teilt sich Klassen
278  // und data-Attribute, hat aber KEIN data-site-nav-glass -> diese Queries
279  // greifen nie auf die Overlay-Elemente zu.
280  const navigationGlassShell = document.querySelector('[data-site-nav-glass]');
281  const navigationGlassContainer = navigationGlassShell?.querySelector('[data-site-nav-container]') ?? null;
282  const navigationAnchorBelowHero = navigationGlassShell?.hasAttribute('data-site-nav-anchor-below-hero');
283  const navigationStickyPlacement = navigationGlassShell?.hasAttribute('data-site-nav-sticky');
284  const navigationShell = navigationGlassShell?.querySelector('[data-site-nav-shell]') ?? null;
285  const navigationDesktopMenu = navigationGlassShell?.querySelector('.site-nav__menu') ?? null;
286  const navigationDesktopCta = navigationGlassShell?.querySelector('.site-nav__desktop-cta') ?? null;
287  const navigationSubnav = navigationGlassShell?.querySelector('.site-nav__subnav') ?? null;
288  const navigationToggle = navigationGlassShell?.querySelector('[data-site-nav-toggle]') ?? null;
289  const navigationClose = navigationGlassShell?.querySelector('[data-site-nav-close]') ?? null;
290  const mobileMenu = navigationGlassShell?.querySelector('[data-site-mobile-menu]') ?? null;
291
292  if (navigationGlassShell instanceof HTMLElement && navigationGlassContainer instanceof HTMLElement) {
293    const syncGlassState = () => {
294      const viewportRange = Math.max(window.innerHeight, 1);
295      const progress = Math.max(0, Math.min(1, window.scrollY / viewportRange));
296      const heroElement = navigationAnchorBelowHero ? document.getElementById('po-hero') : null;
297      const heroOffset = heroElement instanceof HTMLElement ? Math.max(0, heroElement.offsetHeight - window.scrollY) : 0;
298      const stickyProgress = navigationAnchorBelowHero && heroElement instanceof HTMLElement
299        ? Math.max(0, Math.min(1, (window.scrollY - heroElement.offsetHeight) / 180))
300        : navigationStickyPlacement
301          ? navigationGlassShell.getBoundingClientRect().top <= 0.5 ? 1 : 0
302        : progress;
303      const bgOpacity = progress * 0.86;
304      const borderOpacity = progress * 0.18;
305      const shadowOpacity = stickyProgress * 0.12;
306      const blurValue = progress * 14;
307
308      if (navigationAnchorBelowHero) {
309        navigationGlassShell.style.transform = heroOffset > 0 ? `translateY(${heroOffset}px)` : 'translateY(0px)';
310      } else {
311        navigationGlassShell.style.transform = 'translateY(0px)';
312      }
313      navigationGlassContainer.style.opacity = '1';
314      navigationGlassContainer.style.backgroundColor = `rgba(var(--koenig-bg-rgb), ${bgOpacity})`;
315      navigationGlassContainer.style.borderColor = `rgb(201 169 110 / ${borderOpacity})`;
316      navigationGlassContainer.style.borderTopColor = 'transparent';
317      navigationGlassContainer.style.boxShadow = `0 18px 60px rgba(var(--koenig-text-rgb), ${shadowOpacity})`;
318      navigationGlassContainer.style.backdropFilter = `blur(${blurValue}px)`;
319      navigationGlassContainer.style.webkitBackdropFilter = `blur(${blurValue}px)`;
320      navigationGlassContainer.style.setProperty('--site-nav-glow-opacity', String(stickyProgress * 0.9));
321      navigationGlassContainer.style.setProperty('--site-nav-shell-margin-top', '0px');
322      navigationGlassContainer.style.setProperty('--site-nav-shell-pad-bottom', `${6 - progress * 2}px`);
323      navigationGlassContainer.style.setProperty('--site-nav-main-pad-y', `${12 - progress * 7}px`);
324      navigationGlassContainer.style.setProperty('--site-nav-main-gap-bottom', `${4 - progress * 2}px`);
325      navigationGlassContainer.style.setProperty('--site-nav-subnav-gap-bottom', `${20 - progress * 13}px`);
326
327      if (navigationShell instanceof HTMLElement) {
328        navigationShell.style.marginTop = `${6 - progress * 4}px`;
329        navigationShell.style.marginBottom = `${4 - progress * 2}px`;
330        navigationShell.style.transform = `translateY(${progress * -4}
330px)`;
331      }
332
333      if (navigationDesktopMenu instanceof HTMLElement) {
334        navigationDesktopMenu.style.marginBottom = `${4 - progress * 3}px`;
335      }
336
337      if (navigationDesktopCta instanceof HTMLElement) {
338        navigationDesktopCta.style.marginBottom = `${4 - progress * 3}px`;
339      }
340
341      if (navigationSubnav instanceof HTMLElement) {
342        navigationSubnav.style.marginTop = `${2 - progress * 2}px`;
343        navigationSubnav.style.marginBottom = `${20 - progress * 13}px`;
344        navigationSubnav.style.transform = `translateY(${progress * -8}px)`;
345      }
346    };
347
348    syncGlassState();
349    let lastScrollY = window.scrollY;
350
351    const trackGlassState = () => {
352      const currentScrollY = window.scrollY;
353
354      if (navigationAnchorBelowHero || navigationStickyPlacement || currentScrollY !== lastScrollY) {
355        lastScrollY = currentScrollY;
356        syncGlassState();
357      }
358
359      window.requestAnimationFrame(trackGlassState);
360    };
361
362    window.requestAnimationFrame(trackGlassState);
363    window.addEventListener('resize', syncGlassState, { passive: true });
364  }
365
366  if (
367    navigationShell instanceof HTMLElement &&
368    navigationToggle instanceof HTMLButtonElement &&
369    mobileMenu instanceof HTMLElement
370  ) {
371    const syncOffset = () => {
372      navigationShell.style.setProperty('--site-nav-offset', `${navigationShell.offsetHeight}px`);
373      // Mobile-Menü direkt unter dem Burger andocken: Top = Burger-Unterkante
374      // (offsetTop/-Height relativ zu .site-nav__main). Nur setzen wenn der
375      // Toggle sichtbar ist (>991px ist er display:none -> Höhe 0).
376      const toggleBottom = navigationToggle.offsetTop + navigationToggle.offsetHeight;
377      if (toggleBottom > 0) {
378        navigationShell.style.setProperty('--site-nav-menu-top', `${toggleBottom}px`);
379      }
380    };
381
382    const closeMenu = () => {
383      navigationToggle.setAttribute('aria-expanded', 'false');
384      navigationShell.classList.remove('is-open');
385      document.documentElement.classList.remove('site-nav-open');
386    };
387
388    const toggleMenu = () => {
389      const expanded = navigationToggle.getAttribute('aria-expanded') === 'true';
390      navigationToggle.setAttribute('aria-expanded', String(!expanded));
391      navigationShell.classList.toggle('is-open', !expanded);
392      document.documentElement.classList.toggle('site-nav-open', !expanded);
393    };
394
395    syncOffset();
396    window.addEventListener('resize', syncOffset, { passive: true });
397    navigationToggle.addEventListener('click', toggleMenu);
398    navigationClose?.addEventListener('click', closeMenu);
399    mobileMenu.querySelectorAll('a, button').forEach((link) => link.addEventListener('click', closeMenu));
400    window.addEventListener('keydown', (event) => {
401      if (event.key === 'Escape') {
402        closeMenu();
403      }
404    });
405  }
406
407  // Galerie-Dropdown in der Desktop-Subnav: Klick-Toggle, schließt bei
408  // Outside-Click und Escape.
409  document.querySelectorAll('[data-subnav-dropdown]').forEach((dropdown) => {
410    const trigger = dropdown.querySelector('[data-subnav-trigger]');
411    if (!(trigger instanceof HTMLButtonElement)) return;
412    const closeDropdown = () => {
413      dropdown.classList.remove('is-open');
414      trigger.setAttribute('aria-expanded', 'false');
415    };
416    trigger.addEventListener('click', (event) => {
417      event.stopPropagation();
418      if (trigger.getAttribute('aria-expanded') === 'true') {
419        closeDropdown();
420      } else {
421        dropdown.classList.add('is-open');
422        trigger.setAttribute('aria-expanded', 'true');
423      }
424    });
425    document.addEventListener('click', (event) => {
426      if (!dropdown.contains(event.target)) closeDropdown();
427    });
428    document.addEventListener('keydown', (event) => {
429      if (event.key === 'Escape') closeDropdown();
430    });
431  });
432
433  // Invertierte Overlay-Navi: eigener, gescopeter Mobile-Toggle.
434  const overlayShell = document.querySelector('.site-nav-shell--overlay');
435  if (overlayShell instanceof HTMLElement) {
436    const ovMain = overlayShell.querySelector('[data-site-nav-shell]');
437    const ovToggle = overlayShell.querySelector('[data-site-nav-toggle]');
438    const ovClose = overlayShell.querySelector('[data-site-nav-close]');
439    const ovMenu = overlayShell.querySelector('[data-site-mobile-menu]');
440    if (ovMain instanceof HTMLElement && ovToggle instanceof HTMLButtonElement) {
441      // Overlay-Menü ebenfalls direkt an die Burger-Unterkante andocken
442      const ovSyncMenuTop = () => {
443        const bottom = ovToggle.offsetTop + ovToggle.offsetHeight;
444        if (bottom > 0) ovMain.style.setProperty('--site-nav-menu-top', `${bottom}px`);
445      };
446      ovSyncMenuTop();
447      window.addEventListener('resize', ovSyncMenuTop, { passive: true });
448      const ovCloseMenu = () => {
449        ovToggle.setAttribute('aria-expanded', 'false');
450        ovMain.classList.remove('is-open');
451        document.documentElement.classList.remove('site-nav-open');
452      };
453      ovToggle.addEventListener('click', () => {
454        const expanded = ovToggle.getAttribute('aria-expanded') === 'true';
455        ovToggle.setAttribute('aria-expanded', String(!expanded));
456        ovMain.classList.toggle('is-open', !expanded);
457        document.documentElement.classList.toggle('site-nav-open', !expanded);
458      });
459      ovClose?.addEventListener('click', ovCloseMenu);
460      ovMenu?.querySelectorAll('a, button').forEach((link) => link.addEventListener('click', ovCloseMenu));
461    }
462  }
463  }
464
465  if (document.readyState !== 'loading') {
466    initNav();
467  } else {
468    document.addEventListener('DOMContentLoaded', initNav, { once: true });
469  }
470  })();
471</script>
471 <section class="po-copy-panel"> <div class="po-copy-inner"> <p class="eyebrow po-eyebrow">20+ JAHRE · 2.000+ KUNDEN</p> <h1 class="po-headline"> <span class="po-h1">Fünf Welten.</span> <span class="po-h2">Eine Handschrift.</span> </h1> <p class="po-sub">High-End Fotografie für Unternehmen, Persönlichkeiten, Künstler &amp; alle, die sich wirkungsstark präsentieren wollen. Mit Bildern, die berühren und die man einfach mag.</p> </div> </section> <style>
472  .po-hero {
473    --gold: #c9a96e;
474    --gold-dark: #a8833a;
475    --beige: rgb(var(--koenig-bg-rgb));
476    --txt-white: #f5f1ea;
477    --txt-dark: rgb(var(--koenig-text-rgb));
478    --fade: 850ms;
479    --po-ext: 5rem; /* Verlängerung der Wort-Unterlinie bis zum Abzweig */
480
481    position: relative;
482    height: 100vh;
483    min-height: 100vh;
484    overflow: hidden;
485  }
486
487  @supports (height: 100svh) {
488    .po-hero {
489      height: 100svh;
490      min-height: 100svh;
491    }
492  }
493
494  .po-stage {
495    position: relative;
496    height: 100%;
497    /* heller Grund scheint durch den 0.9-Bildbereich -> einheitlicher Look */
498    background: var(--beige);
499    overflow: hidden;
500  }
501
502  /* Bildbereich voll deckend (keine Transparenz) */
503  .po-media {
504    position: absolute;
505    inset: 0;
506    opacity: 1;
507  }
508
509  /* ---- Bild-Layer: deckende Cross-Blende (Layer untereinander opak) ---- */
510  .po-layer {
511    position: absolute;
512    inset: 0;
513    opacity: 0;
514    transition: opacity var(--fade) ease;
515    will-change: opacity;
516    overflow: hidden;
517  }
518
519  .po-layer.is-shown {
520    opacity: 1;
521  }
522
523  .po-layer-img {
524    position: absolute;
525    inset: 0;
526    background-size: cover;
527    background-position: center 30%;
528    background-repeat: no-repeat;
529    /* reiner, zentrierter Zoom; nie unter 1.06 -> Bild deckt immer randlos */
530    transform: scale(1.06);
531    transform-origin: center center;
532    will-change: transform;
533  }
534
535  /* Zoom (kein Schwenk). Dauer >> Anzeigezeit, damit es nie hart umspringt. */
536  @keyframes po-zoom {
537    from { transform: scale(1.06); }
538    to { transform: scale(1.5); }
539  }
540
541  /* Lesbarkeits-Veil: links + unten verankert (Rail steht unten links) */
542  .po-veil {
543    position: absolute;
544    inset: 0;
545    z-index: 5;
546    pointer-events: none;
547    background:
548      linear-gradient(180deg, rgba(8, 6, 5, 0.4) 0%, rgba(8, 6, 5, 0) 22%, rgba(8, 6, 5, 0) 40%, rgba(8, 6, 5, 0.5) 74%, rgba(8, 6, 5, 0.9) 100%),
549      /* kräftiger Anker unten-links: dunkelt gezielt die gesamte Textzone */
550      radial-gradient(135% 118% at 0% 100%, rgba(8, 6, 5, 0.82) 0%, rgba(8, 6, 5, 0.5) 26%, rgba(8, 6, 5, 0.18) 48%, rgba(8, 6, 5, 0) 64%),
551      radial-gradient(140% 130% at 50% 38%, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, 0.4) 100%);
552  }
553
554  /* ---- Intro-Vorhang (LCP-sicher: Bild bleibt deckend, dieser Layer lueftet) ---- */
555  .po-curtain {
556    position: absolute;
557    inset: 0;
558    z-index: 6;
559    pointer-events: none;
560    background: #0b0908;
561    opacity: 0;
562    transition: opacity 0.9s ease;
563  }
564  .po-hero.is-intro .po-curtain { opacity: 1; }
565
566  .po-rail-eyebrow.po-intro-hidden,
567  .po-rail-item.po-intro-hidden {
568    opacity: 0 !important;
569    transform: translateY(12px);
570  }
571
572  /* ---- Rail-Overlay (Index links) ---- */
573  .po-rail {
574    position: absolute;
575    z-index: 20;
576    left: clamp(1.4rem, 4vw, 4.5rem);
577    bottom: clamp(2rem, 7vh, 5rem);
578    color: var(--txt-white);
579    text-shadow: 0 2px 30px rgba(0, 0, 0, 0.6), 0 1px 3px rgba(0, 0, 0, 0.5);
580  }
581
582  .po-rail-eyebrow {
583    display: inline-flex;
584    align-items: center;
585    gap: 0.85rem;
586    margin: 0 0 1.25rem;
587    font-size: clamp(13px, 1.1vw, 15px);
588    letter-spacing: 0.32em;
589    text-transform: uppercase;
590    font-weight: 500;
591    /* leuchtendes Hellgold: auf hellen UND dunklen Bildern gut lesbar */
592    color: #ecd6a6;
593    text-shadow: 0 0 1px rgba(0, 0, 0, 0.95), 0 2px 12px rgba(0, 0, 0, 0.9), 0 0 26px rgba(0, 0, 0, 0.55);
594    transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.65, 0, 0.2, 1);
595  }
596
597  .po-rail-eyebrow::before {
598    content: '';
599    width: 34px;
600    height: 1px;
601    background: #ecd6a6;
602    box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
603  }
604
605  .po-rail-list {
606    display: flex;
607    flex-direction: column;
608  }
609
610  .po-rail-item {
611    display: flex;
612    align-items: baseline;
613    gap: 1rem;
614    margin: 0.1rem 0;
615    padding: 0;
616    border: 0;
617    background: transparent;
618    color: inherit;
619    line-height: 1.04;
620    text-align: left;
621    cursor: pointer;
622    opacity: 0.42;
623    transform: translateX(0);
624    transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.65, 0, 0.2, 1);
625    font-family: inherit;
626  }
627
628  .po-num {
629    font-size: 12px;
630    letter-spacing: 0.12em;
631    color: rgba(245, 241, 234, 0.6);
632    width: 1.6em;
633    font-weight: 300;
634    transition: color 0.55s ease;
635  }
636
637  .po-word {
638    position: relative;
639    font-size: clamp(2rem, 5vw, 4.4rem);
640    font-weight: 200;
641    letter-spacing: -0.01em;
642    text-transform: uppercase;
643  }
644
645  .po-word::after {
646    content: '';
647    position: absolute;
648    left: 0;
649    bottom: 0.06em;
650    height: 1px;
651    width: 0;
652    background: var(--gold);
653    transition: width 0.6s cubic-bezier(0.65, 0, 0.2, 1);
654  }
655
656  .po-rail-item.is-active {
657    opacity: 1;
658    transform: translateX(0.55rem);
659  }
660
661  .po-rail-item.is-active .po-num { color: var(--gold); }
662  .po-rail-item.is-active .po-word { color: #fff; }
663  /* eine durchgehende Linie: Unterlinie unter dem Wort + Verlängerung bis zum Abzweig */
664  .po-rail-item.is-active .po-word::after { width: calc(100% + var(--po-ext)); }
665
666  /* ---- Erklärung mit gold-Zickzack-Connector (nur aktive Welt, Desktop) ---- */
667  /* Abzweig sitzt am ENDE der verlängerten Unterlinie (eine saubere 90°-Ecke, keine Naht am Wort) */
668  .po-anno {
669    position: absolute;
670    left: calc(100% + var(--po-ext) - 2px); /* Linienende, 2px Überlappung */
671    top: 100%;
672    display: flex;
673    align-items: center;
674    gap: 0.5rem;
675    color: var(--gold);
676    white-space: nowrap;
677    pointer-events: none;
678    /* SVG-Ecke (viewBox y20) auf Unterlinien-Höhe (::after bei bottom: 0.06em) */
679    transform: translateY(calc(-0.06em - 1px - 20px));
680  }
681  .po-anno-elbow { display: block; flex: 0 0 auto; }
682  /* Linie "zeichnet" sich von links nach rechts (Enter verzögert, Exit schnell) */
683  .po-anno-elbow path {
684    stroke-dasharray: 100;
685    stroke-dashoffset: 100;
686    transition: stroke-dashoffset 0.3s ease;
687  }
688  .po-rail-item.is-active .po-anno-elbow path {
689    stroke-dashoffset: 0;
690    transition: stroke-dashoffset 0.45s cubic-bezier(0.65, 0, 0.2, 1) 0.55s;
691  }
692  .po-anno-text {
693    font-family: 'Inter', system-ui, sans-serif;
694    font-size: 16.5px;
695    font-weight: 400;
696    letter-spacing: 0.005em;
697    text-transform: none;
698    line-height: 1.2;
699    color: #ffffff;
700    text-shadow: 0 0 1px rgba(0, 0, 0, 0.95), 0 1px 3px rgba(0, 0, 0, 0.92), 0 2px 16px rgba(0, 0, 0, 0.88);
701    /* Text wischt von links nach rechts auf (Enter verzögert, Exit schnell) */
702    clip-path: inset(0 100% 0 0);
703    transition: clip-path 0.3s ease;
704  }
705  /* Werbliche Pointe: gold + Cormorant-Garamond-Italic (Akzent-Font) */
706  .po-anno-punch {
707    font-family: 'Cormorant Garamond', 'Times New Roman', serif;
708    font-style: italic;
709    font-weight: 500;
710    font-size: 1.28em;
711    letter-spacing: 0;
712    color: var(--gold);
713  }
714  /* Text + LP-Link als Spalte am Schenkel-Ende (Link sitzt unter dem Text) */
715  .po-anno-col {
716    display: inline-flex;
717    flex-direction: column;
718    align-items: flex-start;
719    gap: 0.45rem;
720    white-space: nowrap;
721    transform: translateY(18px);
722  }
723  .po-anno--up .po-anno-col { transform: translateY(-18px); }
724  .po-rail-item.is-active .po-anno-text {
725    clip-path: inset(0 0 0 0);
726    transition: clip-path 0.55s cubic-bezier(0.65, 0, 0.2, 1) 0.95s;
727  }
728
729  /* "Mehr erfahren"-Link: nur bei der aktiven Welt sichtbar & klickbar */
730  .po-anno-link {
731    pointer-events: none;
732    visibility: hidden;
733    opacity: 0;
734    font-family: 'Inter', system-ui, sans-serif;
735    font-size: 13px;
736    font-weight: 500;
737    letter-spacing: 0.18em;
738    text-transform: uppercase;
739    color: var(--gold);
740    text-decoration: none;
741    white-space: nowrap;
742    text-shadow: 0 0 1px rgba(0, 0, 0, 0.9), 0 1px 3px rgba(0, 0, 0, 0.85);
743    transition: opacity 0.3s ease, color 0.25s ease;
744  }
745  .po-rail-item.is-active .po-anno-link {
746    pointer-events: auto;
747    visibility: visible;
748    opacity: 0.92;
749    transition: opacity 0.5s ease 1.15s, color 0.25s ease;
750  }
751  .po-anno-link:hover { color: #fff; opacity: 1; }
752
753  /* Mobil-Variante: eine Zeile unter der Liste (kein Layout-Sprung) */
754  .po-rail-note { display: none; }
755  .po-rail-link { display: none; }
756
757  .po-rail-item:focus-visible {
758    outline: 2px solid var(--gold);
759    outline-offset: 5px;
760    border-radius: 2px;
761  }
762
763  @media (hover: hover) {
764    .po-rail-item:hover { opacity: 0.85; }
765  }
766
767  /* ---- Copy-Panel unter dem Hero (Stil unverändert) ---- */
768  .po-copy-panel {
769    --gold: #c9a96e;
770    --beige: rgb(var(--koenig-bg-rgb));
771    --txt-dark: rgb(var(--koenig-text-rgb));
772
773    position: relative;
774    width: 100%;
775    z-index: 10;
776    display: block;
777    padding: clamp(2rem, 3vw, 2.75rem) 1.5rem clamp(1.5rem, 2.6vw, 2.4rem);
778    background-color: var(--beige);
779    border-bottom: 1px solid rgba(var(--koenig-text-rgb), 0.08);
780  }
781
782  .po-copy-inner {
783    width: min(100%, 1260px);
784    max-width: 1260px;
785    margin: 0 auto;
786    text-align: center;
787  }
788
789  .po-eyebrow { margin: 0 0 1rem; }
790
791  .po-headline {
792    display: flex;
793    flex-direction: column;
794    align-items: center;
795    justify-content: center;
796    gap: 0.08em;
797    margin: 0;
798  }
799
800  .po-h1 {
801    display: block;
802    color: var(--txt-dark);
803    font-family: 'Inter', system-ui, sans-serif;
804    font-size: clamp(2.6rem, 5.4vw, 4.75rem);
805    line-height: 1.05;
806    font-weight: 300;
807    letter-spacing: -0.02em;
808  }
809
810  .po-h2 {
811    display: block;
812    color: var(--gold);
813    font-family: 'Cormorant Garamond', 'Times New Roman', serif;
814    font-style: italic;
815    font-weight: 400;
816    font-size: clamp(2.6rem, 5.4vw, 4.75rem);
817    line-height: 1.05;
818  }
819
820  .po-sub {
821    max-width: 480px;
822    margin: 1.2rem auto 0;
823    color: rgba(var(--koenig-text-rgb), 0.74);
824    font-size: 16px;
825    line-height: 1.65;
826    font-weight: 300;
827  }
828
829  @media (max-width: 900px) {
830    .po-rail-eyebrow {
831      letter-spacing: 0.24em;
832      margin-bottom: 0.9rem;
833    }
834    .po-word { font-size: clamp(1.9rem, 8vw, 3rem); }
835    .po-copy-panel { padding-top: 2rem; padding-bottom: 1.75rem; }
836    .po-h1, .po-h2 { font-size: clamp(2.3rem, 7vw, 3.5rem); }
837    .po-sub { font-size: 15px; }
838
839    /* Elbow-Variante raus, stattdessen eine Zeile unter der Liste */
840    .po-anno { display: none; }
841    .po-rail-note {
842      display: block;
843      margin: 0.85rem 0 0;
844      max-width: 82vw;
845      font-size: 14.5px;
846      font-weight: 400;
847      line-height: 1.3;
848      letter-spacing: 0.005em;
849      text-transform: none;
850      color: #ffffff;
851      padding-left: 0.85rem;
852      border-left: 2px solid var(--gold);
853      text-shadow: 0 0 1px rgba(0, 0, 0, 0.95), 0 1px 3px rgba(0, 0, 0, 0.92), 0 2px 14px rgba(0, 0, 0, 0.85);
854      transition: opacity 0.4s ease;
855    }
856    .po-rail-link {
857      display: inline-flex;
858      align-items: center;
859      gap: 0.3rem;
860      margin: 0.6rem 0 0 0.85rem;
861      font-family: 'Inter', system-ui, sans-serif;
862      font-size: 13px;
863      font-weight: 500;
864      letter-spacing: 0.16em;
865      text-transform: uppercase;
866      color: var(--gold);
867      text-decoration: none;
868      text-shadow: 0 0 1px rgba(0, 0, 0, 0.9), 0 1px 3px rgba(0, 0, 0, 0.85);
869    }
870  }
871
872  @media (prefers-reduced-motion: reduce) {
873    .po-layer { transition: none; }
874    .po-layer-img { animation: none !important; transform: scale(1.06); }
875    .po-rail-item, .po-word::after, .po-num, .po-anno,
876    .po-anno-elbow path, .po-anno-text { transition: none; }
877  }
878</style> 
878<script>
879  (() => {
880    const stage = document.querySelector('#po-hero .po-stage');
881    if (!stage) return;
882
883    const layers = stage.querySelectorAll('.po-layer');
884    const items = stage.querySelectorAll('.po-rail-item');
885    const railNote = stage.querySelector('[data-rail-note]');
886    const railLink = stage.querySelector('[data-rail-link]');
887    const N = layers.length;
888    if (N < 2 || items.length !== N) return;
889
890    const prefersReduced = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
891
892    // ---- Intro-Choreografie beim Start (gestaffelt) ----
893    const heroEl = document.getElementById('po-hero');
894    const eyebrowEl = stage.querySelector('.po-rail-eyebrow');
895    if (heroEl && !prefersReduced) {
896      heroEl.classList.add('is-intro');
897      if (eyebrowEl) eyebrowEl.classList.add('po-intro-hidden');
898      items.forEach((it) => it.classList.add('po-intro-hidden'));
899      requestAnimationFrame(() => {
900        window.setTimeout(() => heroEl.classList.remove('is-intro'), 120);
901        window.setTimeout(() => items[0] && items[0].classList.remove('po-intro-hidden'), 850);
902        [1, 2, 3, 4].forEach((i, k) =>
903          window.setTimeout(() => items[i] && items[i].classList.remove('po-intro-hidden'), 1150 + k * 210));
904        if (eyebrowEl) window.setTimeout(() => eyebrowEl.classList.remove('po-intro-hidden'), 1700);
905      });
906    }
907
908    const FADE = 850;
909    const HOLD = 2600;
910    const CYCLE = FADE + HOLD;
911    // Zoom-Tempo pro Bild unterschiedlich (Dauer >> Anzeigezeit).
912    const ZOOM_DUR = [22000, 16000, 14000, 19000, 26000];
913
914    let idx = -1;
915    let prev = -1;
916    let timer = null;
917    // Sobald der Nutzer selbst eine Welt anklickt, bleibt die Auto-Rotation aus.
918    let userLocked = false;
919
920    function activate(i) {
921      if (i === idx) return;
922      prev = idx;
923      idx = i;
924      const layer = layers[i];
925      const img = layer.querySelector('.po-layer-img');
926
927      // Lazy-Bild spätestens jetzt laden (falls der Idle-Vorlader noch nicht lief)
928      if (img && img.dataset.bg) {
929        img.style.backgroundImage = `url('${img.dataset.bg}')`;
930        img.removeAttribute('data-bg');
931      }
932
933      // festes, begrenztes z-Schema: aktueller oben (2), vorheriger darunter (1), Rest 0
934      // (bleibt damit immer unter Veil/Rail -> Schrift verschwindet nicht)
935      layers.forEach((l) => { l.style.zIndex = '0'; });
936      if (prev >= 0) layers[prev].style.zIndex = '1';
937      layer.style.zIndex = '2';
938
939      // unsichtbar zurücksetzen + Zoom-Reset ohne Transition, dann Reflow
940      layer.style.transition = 'none';
941      layer.classList.remove('is-shown');
942      if (img) img.style.animation = 'none';
943      void layer.offsetWidth;
944
945      if (prefersReduced) {
946        layer.classList.add('is-shown');
947      } else {
948        layer.style.transition = `opacity ${FADE}ms ease`;
949        if (img) {
950          const dur = ZOOM_DUR[i % ZOOM_DUR.length];
951          img.style.animation = `po-zoom ${dur}ms linear forwards`;
952        }
953        layer.classList.add('is-shown');
954      }
955
956      items.forEach((el, j) => el.classList.toggle('is-active', j === i));
957
958      // Mobil-Notiz-Zeile auf die aktive Welt setzen (innerHTML, damit die
959      // gold-kursive Pointe auch mobil ihren Stil behält; Quelle ist statisch)
960      if (railNote) {
961        const t = items[i].querySelector('.po-anno-text');
962        railNote.innerHTML = t ? t.innerHTML : '';
963      }
964      // Mobil-Link der aktiven Welt auf die passende Ziel-URL setzen
965      if (railLink) {
966        const href = items[i].getAttribute('data-href');
967        if (href) railLink.setAttribute('href', href);
968      }
969    }
970
971    function next() { activate((idx + 1) % N); }
972    function start() { if (userLocked) return; stop(); if (!prefersReduced) timer = window.setInterval(next, CYCLE); }
973    function stop() { if (timer) window.clearInterval(timer); timer = null; }
974
975    function selectWorld(el) {
976      // Nutzer übernimmt die Steuerung: Auto-Rotation dauerhaft stoppen
977      // (auch der IntersectionObserver startet wegen userLocked nicht neu).
978      userLocked = true;
979      stop();
980      activate(Number(el.dataset.i));
981    }
982
983    items.forEach((el) => {
984      el.addEventListener('click', (e) => {
985        // Klick auf den "Mehr erfahren"-Link nicht abfangen (soll navigieren)
986        if (e.target.closest && e.target.closest('a')) return;
987        selectWorld(el);
988      });
989      // role="button"-Tastaturbedienung (Enter/Leertaste), aber nicht wenn der
990      // Fokus auf dem Link im Inneren liegt (der navigiert selbst).
991      el.addEventListener('keydown', (e) => {
992        if (e.target !== el) return;
993        if (e.key === 'Enter' || e.key === ' ' || e.key === 'Spacebar') {
994          e.preventDefault();
995          selectWorld(el);
996        }
997      });
998    });
999
1000    // Bilder 2-5 nach dem ersten Paint im Idle vorladen (nicht im LCP-Pfad)
1001    function warmDeferred() {
1002      layers.forEach((layer) => {
1003        const img = layer.querySelector('.po-layer-img');
1004        if (img && img.dataset.bg) {
1005          img.style.backgroundImage = `url('${img.dataset.bg}')`;
1006          img.removeAttribute('data-bg');
1007        }
1008      });
1009    }
1010    if ('requestIdleCallback' in window) {
1011      window.requestIdleCallback(warmDeferred, { timeout: 2500 });
1012    } else {
1013      window.setTimeout(warmDeferred, 600);
1014    }
1015
1016    // Erststand setzen, Auto-Cycle nur wenn der Hero im Viewport ist
1017    activate(0);
1018    if (!prefersReduced) {
1019      if ('IntersectionObserver' in window) {
1020        const io = new IntersectionObserver((entries) => {
1021          entries.forEach((e) => (e.isIntersecting ? start() : stop()));
1022        }, { threshold: 0.15 });
1023        io.observe(stage);
1024      } else {
1025        start();
1026      }
1027    }
1028  })();
1029</script>
1029 <section class="service-cards" data-astro-cid-ezzh4izy> <div class="service-cards__shell" data-astro-cid-ezzh4izy>  <div class="service-cards__grid" data-astro-cid-ezzh4izy> <article class="service-cards__item" id="service-office" data-service-card data-service-open="true" data-reveal data-astro-cid-ezzh4izy> <button type="button" class="service-cards__trigger" id="service-trigger-office" aria-expanded="true" aria-controls="service-details-office" data-service-trigger data-astro-cid-ezzh4izy> <span class="service-cards__count" data-astro-cid-ezzh4izy>01</span> <span class="service-cards__trigger-copy" data-astro-cid-ezzh4izy> <span class="service-cards__headline-row" data-astro-cid-ezzh4izy> <span class="service-cards__headline" data-astro-cid-ezzh4izy>Mitarbeiter- &amp; Office-Fotografie</span> </span> </span> <span class="service-cards__trigger-icon" aria-hidden="true" data-astro-cid-ezzh4izy>+</span> </button> <div class="service-cards__panel" data-astro-cid-ezzh4izy> <div class="service-cards__slider-row" data-astro-cid-ezzh4izy> <button type="button" class="service-cards__nav service-cards__nav--edge" data-swiper-prev aria-label="Vorherige Bilder für Mitarbeiter- &amp; Office-Fotografie" data-astro-cid-ezzh4izy>
1030←
1031</button> <div class="swiper service-cards__swiper" data-service-swiper data-astro-cid-ezzh4izy> <div class="swiper-wrapper" data-astro-cid-ezzh4izy> <div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-office/7446c3da_thumb.avif" alt="Mitarbeiter- &amp; Office-Fotografie 1" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-office/687c37fd_thumb.avif" alt="Mitarbeiter- &amp; Office-Fotografie 2" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-office/6b44354a_thumb.avif" alt="Mitarbeiter- &amp; Office-Fotografie 3" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-office/146e1ee0_thumb.avif" alt="Mitarbeiter- &amp; Office-Fotografie 4" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-office/6a848d37_thumb.avif" alt="Mitarbeiter- &amp; Office-Fotografie 5" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-office/dc140229_thumb.avif" alt="Mitarbeiter- &amp; Office-Fotografie 6" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-office/25b8c178_thumb.avif" alt="Mitarbeiter- &amp; Office-Fotografie 7" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-office/15840769_thumb.avif" alt="Mitarbeiter- &amp; Office-Fotografie 8" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-office/b059b49b_thumb.avif" alt="Mitarbeiter- &amp; Office-Fotografie 9" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-office/4d64c71d_thumb.avif" alt="Mitarbeiter- &amp; Office-Fotografie 10" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-office/7c67ca80_thumb.avif" alt="Mitarbeiter- &amp; Office-Fotografie 11" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-office/0eea24ee_thumb.avif" alt="Mitarbeiter- &amp; Office-Fotografie 12" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-office/7efe64ba_thumb.avif" alt="Mitarbeiter- &amp; Office-Fotografie 13" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div> </div> </div> <button type="button" class="service-cards__nav service-cards__nav
1031--edge" data-swiper-next aria-label="Nächste Bilder für Mitarbeiter- &amp; Office-Fotografie" data-astro-cid-ezzh4izy>
1032→
1033</button> </div> <p class="service-cards__panel-indicator" aria-hidden="true" data-astro-cid-ezzh4izy>Mehr ↓</p> <div class="service-cards__details" id="service-details-office" role="region" aria-labelledby="service-trigger-office" data-service-details aria-hidden="false" data-astro-cid-ezzh4izy> <div class="service-cards__body" data-astro-cid-ezzh4izy> <p class="service-cards__description" data-astro-cid-ezzh4izy> Wir setzen Ihr Team perfekt in Szene: Ob Einzel- oder Gruppenfotos, ob nach Ihren Wünschen oder nach unserem Kreativ-Konzept - wir finden den passenden Bildstil für Sie. Außerdem zeigen wir Ihre Mitarbeiter in lebendigen und überzeugenden Action-Shots bei der Arbeit. Mit Komposit-Gruppenbildern können Sie flexibel auf die Zusammensetzung Ihres Teams reagieren und Personen digital bearbeiten. </p> <div class="service-cards__examples-block" data-astro-cid-ezzh4izy> <p class="service-cards__examples-label" data-astro-cid-ezzh4izy>Anwendungsbeispiele</p> <div class="service-cards__examples" aria-label="Beispiele für Mitarbeiter- &amp; Office-Fotografie" data-astro-cid-ezzh4izy> <span class="service-cards__example" data-astro-cid-ezzh4izy>einheitliche Team-Fotos</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>kreative Mitarbeiter-Portraits</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>biometrische Mitarbeiter-Fotos für Teambase</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>ausdrucksstarke Action-Shots</span>  </div> </div> <div class="service-cards__actions" data-astro-cid-ezzh4izy> <a class="service-cards__action-button service-cards__action-button--primary inline-flex min-h-12 w-full items-center justify-center gap-2 rounded-md border border-gold bg-gold px-7 py-3 text-xs font-light uppercase tracking-[0.22em] text-koenig-weiss transition duration-300 hover:border-gold-dark hover:bg-gold-dark sm:w-auto sm:min-w-64" href="/office" data-astro-cid-ezzh4izy> <span data-astro-cid-ezzh4izy>Ausführliche Informationen →</span> </a> <button type="button" class="service-cards__action-button kontaktopener inl
1033ine-flex min-h-12 w-full cursor-pointer items-center justify-center gap-2 rounded-md px-7 py-3 text-xs font-light uppercase tracking-[0.22em] transition duration-300 sm:w-auto sm:min-w-64 service-cards__action-button--secondary border border-gold/45 bg-transparent text-gold hover:border-gold hover:bg-gold/10 hover:text-gold-dark" data-contact-modal data-contact-query data-astro-cid-ezzh4izy> <span data-astro-cid-ezzh4izy>Beratung anfragen</span> </button> </div> </div> </div> </div> </article><article class="service-cards__item" id="service-branding" data-service-card data-service-open="false" data-reveal data-astro-cid-ezzh4izy> <button type="button" class="service-cards__trigger" id="service-trigger-branding" aria-expanded="false" aria-controls="service-details-branding" data-service-trigger data-astro-cid-ezzh4izy> <span class="service-cards__count" data-astro-cid-ezzh4izy>02</span> <span class="service-cards__trigger-copy" data-astro-cid-ezzh4izy> <span class="service-cards__headline-row" data-astro-cid-ezzh4izy> <span class="service-cards__headline" data-astro-cid-ezzh4izy>Business-Portrait</span> </span> </span> <span class="service-cards__trigger-icon" aria-hidden="true" data-astro-cid-ezzh4izy>+</span> </button> <div class="service-cards__panel" data-astro-cid-ezzh4izy> <div class="service-cards__slider-row" data-astro-cid-ezzh4izy> <button type="button" class="service-cards__nav service-cards__nav--edge" data-swiper-prev aria-label="Vorherige Bilder für Business-Portrait" data-astro-cid-ezzh4izy>
1034←
1035</button> <div class="swiper service-cards__swiper" data-service-swiper data-astro-cid-ezzh4izy> <div class="swiper-wrapper" data-astro-cid-ezzh4izy> <div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-branding/503ed94e_thumb.avif" alt="Bu
1035siness-Portrait 1" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-branding/5fb9f216_thumb.avif" alt="Business-Portrait 2" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-branding/46d08874_thumb.avif" alt="Business-Portrait 3" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-branding/599f4667_thumb.avif" alt="Business-Portrait 4" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-branding/7a3b99f7_thumb.avif" alt="Bu
1035siness-Portrait 5" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-branding/be65fded_thumb.avif" alt="Business-Portrait 6" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-branding/ce7087d8_thumb.avif" alt="Business-Portrait 7" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-branding/10e54c27_thumb.avif" alt="Business-Portrait 8" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-branding/3656ac7b_thumb.avif" alt="Bu
1035siness-Portrait 9" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-branding/bb3488a4_thumb.avif" alt="Business-Portrait 10" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-branding/ac90687e_thumb.avif" alt="Business-Portrait 11" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div> </div> </div> <button type="button" class="service-cards__nav service-cards__nav--edge" data-swiper-next aria-label="Nächste Bilder für Business-Portrait" data-astro-cid-ezzh4izy>
1036→
1037</button> </div> <p class="service-cards__panel-indicator" aria-hidden="true" data-astro-cid-ezzh4izy>Mehr ↓</p> <div class="service-cards__details" id="service-details-branding" role="region" aria-labelledby="service-trigger-branding" data-service-details aria-hidden="true" inert data-astro-cid-ezzh4izy> <div class="service-cards__body" data-astro-cid-ezzh4izy> <p class="service-cards__description" data-astro-cid-ezzh4izy> Wir machen ausdrucksstarke Portraits von Selbstständigen, Freiberuflern, Unternehmen und Künstlern. Ob Sie uns Ihre Vorstellungen mitteilen oder uns freie Hand lassen - wir gestalten jedes Shooting individuell und kreativ. Unser Ziel ist es, Ihnen Portraits zu liefern, die Sie beruflich weiterbringen. </p> <div class="service-cards__examples-block" data-astro-cid-ezzh4izy> <p class="service-cards__examples-label" data-astro-cid-ezzh4izy>Anwendungsbeispiele</p> <div class="service-cards__examples" aria-label="Beispiele für Business-Portrait" data-astro-cid-ezzh4izy> <span class="service-cards__example" data-astro-cid-ezzh4izy>Portraits für Ihre Website</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Fotomaterial für Social-Media-Kanäle</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Fotos für Ihre Printwerbung</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Bilder für Ihre Werbeaktionen</span>  </div> </div> <div class="service-cards__actions" data-astro-cid-ezzh4izy> <a class="service-cards__action-button service-cards__action-button--primary inline-flex min-h-12 w-full items-center justify-center gap-2 rounded-md border border-gold bg-gold px-7 py-3 text-xs font-light uppercase tracking-[0.22em] text-koenig-weiss transition duration-300 hover:border-gold-dark hover:bg-gold-dark sm:w-auto sm:min-w-64" href="/business-portrait" data-astro-cid-ezzh4izy> <span data-astro-cid-ezzh4izy>Ausführliche Informationen →</span> </a> <button type="button" class="service-cards__action-button kontaktopener inl
1037ine-flex min-h-12 w-full cursor-pointer items-center justify-center gap-2 rounded-md px-7 py-3 text-xs font-light uppercase tracking-[0.22em] transition duration-300 sm:w-auto sm:min-w-64 service-cards__action-button--secondary border border-gold/45 bg-transparent text-gold hover:border-gold hover:bg-gold/10 hover:text-gold-dark" data-contact-modal data-contact-query data-astro-cid-ezzh4izy> <span data-astro-cid-ezzh4izy>Beratung anfragen</span> </button> </div> </div> </div> </div> </article><article class="service-cards__item" id="service-karriere" data-service-card data-service-open="false" data-reveal data-astro-cid-ezzh4izy> <button type="button" class="service-cards__trigger" id="service-trigger-karriere" aria-expanded="false" aria-controls="service-details-karriere" data-service-trigger data-astro-cid-ezzh4izy> <span class="service-cards__count" data-astro-cid-ezzh4izy>03</span> <span class="service-cards__trigger-copy" data-astro-cid-ezzh4izy> <span class="service-cards__headline-row" data-astro-cid-ezzh4izy> <span class="service-cards__headline" data-astro-cid-ezzh4izy>Bewerbungs- &amp; Karriere-Portraits</span> </span> </span> <span class="service-cards__trigger-icon" aria-hidden="true" data-astro-cid-ezzh4izy>+</span> </button> <div class="service-cards__panel" data-astro-cid-ezzh4izy> <div class="service-cards__slider-row" data-astro-cid-ezzh4izy> <button type="button" class="service-cards__nav service-cards__nav--edge" data-swiper-prev aria-label="Vorherige Bilder für Bewerbungs- &amp; Karriere-Portraits" data-astro-cid-ezzh4izy>
1038←
1039</button> <div class="swiper service-cards__swiper" data-service-swiper data-astro-cid-ezzh4izy> <div class="swiper-wrapper" data-astro-cid-ezzh4izy> <div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-karriere/649beaf6_thumb.avif" alt="Bewerbungs- &amp; Karriere-Portraits 1" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-karriere/559311af_thumb.avif" alt="Bewerbungs- &amp; Karriere-Portraits 2" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-karriere/010041aa_thumb.avif" alt="Bewerbungs- &amp; Karriere-Portraits 3" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-karriere/12ed5520_thumb.avif" alt="Bewerbungs- &amp; Karriere-Portraits 4" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-karriere/1e50cf1a_thumb.avif" alt="Bewerbungs- &amp; Karriere-Portraits 5" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-karriere/9b80c488_thumb.avif" alt="Bewerbungs- &amp; Karriere-Portraits 6" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-karriere/77c520f2_thumb.avif" alt="Bewerbungs- &amp; Karriere-Portraits 7" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-karriere/93af11a0_thumb.avif" alt="Bewerbungs- &amp; Karriere-Portraits 8" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-karriere/17dc7061_thumb.avif" alt="Bewerbungs- &amp; Karriere-Portraits 9" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-karriere/7ce7d586_thumb.avif" alt="Bewerbungs- &amp; Karriere-Portraits 10" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-karriere/8becfdb6_thumb.avif" alt="Bewerbungs- &amp; Karriere-Portraits 11" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-karriere/314364c5_thumb.avif" alt="Bewerbungs- &amp; Karriere-Portraits 12" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div> </div> </div> <button type="button" class="service-cards__nav service-cards__nav
1039--edge" data-swiper-next aria-label="Nächste Bilder für Bewerbungs- &amp; Karriere-Portraits" data-astro-cid-ezzh4izy>
1040→
1041</button> </div> <p class="service-cards__panel-indicator" aria-hidden="true" data-astro-cid-ezzh4izy>Mehr ↓</p> <div class="service-cards__details" id="service-details-karriere" role="region" aria-labelledby="service-trigger-karriere" data-service-details aria-hidden="true" inert data-astro-cid-ezzh4izy> <div class="service-cards__body" data-astro-cid-ezzh4izy> <p class="service-cards__description" data-tone-du="Du möchtest dich beruflich weiterentwickeln oder verändern? Dann bist du bei König Photographie genau richtig. Wir bieten dir professionelle und überzeugende Bewerbungs- und Karriere-Fotos, die deine Kompetenz und deine Persönlichkeit unterstreichen. Ob für deinen Lebenslauf, deine Website oder deine Social-Media-Profile - wir sorgen dafür, dass du einen positiven und nachhaltigen Eindruck hinterlässt." data-tone-sie="Sie möchten sich beruflich weiterentwickeln oder verändern? Dann sind Sie bei König Photographie genau richtig. Wir bieten Ihnen professionelle und überzeugende Bewerbungs- und Karriere-Fotos, die Ihre Kompetenz und Ihre Persönlichkeit unterstreichen. Ob für Ihren Lebenslauf, Ihre Website oder Ihre Social-Media-Profile - wir sorgen dafür, dass Sie einen positiven und nachhaltigen Eindruck hinterlassen." data-astro-cid-ezzh4izy> Sie möchten sich beruflich weiterentwickeln oder verändern? Dann sind Sie bei König Photographie genau richtig. Wir bieten Ihnen professionelle und überzeugende Bewerbungs- und Karriere-Fotos, die Ihre Kompetenz und Ihre Persönlichkeit unterstreichen. Ob für Ihren Lebenslauf, Ihre Website oder Ihre Social-Media-Profile - wir sorgen dafür, dass Sie einen positiven und nachhaltigen Eindruck hinterlassen. </p> <div class="service-cards__examples-block" data-astro-cid-ezzh4izy> <p class="service-cards__examples-label" data-astro-cid-ezzh4izy>Anwendungsbeispiele</p> <div class="service-cards__examples" aria-label="Beispiele für Bewerbungs- &amp; Karriere-Portraits" data-astro-cid-ezzh4izy> <span class="service-cards__example" data-astro-cid-ezzh4izy>Foto für Ihren Lebenslauf</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Foto für Ihre Website oder Teambase</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Foto für LinkedIn oder Xing</span>  </div> </div> <div class="service-cards__actions" data-astro-cid-ezzh4izy> <a class="service-cards__action-button service-cards__action-button--primary inline-flex min-h-12 w-full items-center justify-center gap-2 rounded-md border border-gold bg-gold px-7 py-3 text-xs font-light uppercase tracking-[0.22em] text-koenig-weiss transition duration-300 hover:border-gold-dark hover:bg-gold-dark sm:w-auto sm:min-w-64" href="/karriere" data-astro-cid-ezzh4izy> <span data-astro-cid-ezzh4izy>Ausführliche Informationen →</span> </a> <button type="button" class="service-cards__action-button kontaktopener inl
1041ine-flex min-h-12 w-full cursor-pointer items-center justify-center gap-2 rounded-md px-7 py-3 text-xs font-light uppercase tracking-[0.22em] transition duration-300 sm:w-auto sm:min-w-64 service-cards__action-button--secondary border border-gold/45 bg-transparent text-gold hover:border-gold hover:bg-gold/10 hover:text-gold-dark" data-contact-modal data-contact-query data-astro-cid-ezzh4izy> <span data-astro-cid-ezzh4izy>Beratung anfragen</span> </button> </div> </div> </div> </div> </article><article class="service-cards__item" id="service-event" data-service-card data-service-open="false" data-reveal data-astro-cid-ezzh4izy> <button type="button" class="service-cards__trigger" id="service-trigger-event" aria-expanded="false" aria-controls="service-details-event" data-service-trigger data-astro-cid-ezzh4izy> <span class="service-cards__count" data-astro-cid-ezzh4izy>04</span> <span class="service-cards__trigger-copy" data-astro-cid-ezzh4izy> <span class="service-cards__headline-row" data-astro-cid-ezzh4izy> <span class="service-cards__headline" data-astro-cid-ezzh4izy>Event-Dokumentation</span> </span> </span> <span class="service-cards__trigger-icon" aria-hidden="true" data-astro-cid-ezzh4izy>+</span> </button> <div class="service-cards__panel" data-astro-cid-ezzh4izy> <div class="service-cards__slider-row" data-astro-cid-ezzh4izy> <button type="button" class="service-cards__nav service-cards__nav--edge" data-swiper-prev aria-label="Vorherige Bilder für Event-Dokumentation" data-astro-cid-ezzh4izy>
1042←
1043</button> <div class="swiper service-cards__swiper" data-service-swiper data-astro-cid-ezzh4izy> <div class="swiper-wrapper" data-astro-cid-ezzh4izy> <div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/55f40ad5_thumb.avif" alt="Event-Dokumentation 1" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/fcdf1ac9_thumb.avif" alt="Event-Dokumentation 2" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/36d3bce8_thumb.avif" alt="Event-Dokumentation 3" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/28936185_thumb.avif" alt="Event-Dokumentation 4" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/cd68a67d_thumb.avif" alt="Event-Dokumentation 5" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/32b159be_thumb.avif" alt="Event-Dokumentation 6" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/6dfd5804_thumb.avif" alt="Event-Dokumentation 7" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/1d3b05b5_thumb.avif" alt="Event-Dokumentation 8" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/89791dbf_thumb.avif" alt="Event-Dokumentation 9" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/9ecc3aaa_thumb.avif" alt="Event-Dokumentation 10" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/862c33aa_thumb.avif" alt="Event-Dokumentation 11" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/adfb6a0a_thumb.avif" alt="Event-Dokumentation 12" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/94236420_thumb.avif" alt="Event-Dokumentation 13" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/300347d8_thumb.avif" alt="Event-Dokumentation 14" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/669491b1_thumb.avif" alt="Event-Dokumentation 15" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/8155b827_thumb.avif" alt="Event-Dokumentation 16" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-event/9688f890_thumb.avif" alt="Event-Dokumentation 17" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div> </div> </div> <button type="button" class="service-cards__nav service-cards__nav
1043--edge" data-swiper-next aria-label="Nächste Bilder für Event-Dokumentation" data-astro-cid-ezzh4izy>
1044→
1045</button> </div> <p class="service-cards__panel-indicator" aria-hidden="true" data-astro-cid-ezzh4izy>Mehr ↓</p> <div class="service-cards__details" id="service-details-event" role="region" aria-labelledby="service-trigger-event" data-service-details aria-hidden="true" inert data-astro-cid-ezzh4izy> <div class="service-cards__body" data-astro-cid-ezzh4izy> <p class="service-cards__description" data-astro-cid-ezzh4izy> Wir erstellen für unsere Business-Kunden komplette Fotodokumentationen von ihren Events. Wir fangen die Atmosphäre und das Wesentliche Ihrer Veranstaltungen in eindrucksvollen Aufnahmen ein - auf Wunsch auch mit Videografie. </p> <div class="service-cards__examples-block" data-astro-cid-ezzh4izy> <p class="service-cards__examples-label" data-astro-cid-ezzh4izy>Anwendungsbeispiele</p> <div class="service-cards__examples" aria-label="Beispiele für Event-Dokumentation" data-astro-cid-ezzh4izy> <span class="service-cards__example" data-astro-cid-ezzh4izy>Firmenfeiern mit Atmosphäre</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Messen mit allen Highlights</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Tagungen mit Impulsen</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Konzerte mit Emotionen</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Workshops mit Ergebnissen</span>  </div> </div> <div class="service-cards__actions" data-astro-cid-ezzh4izy> <a class="service-cards__action-button service-cards__action-button--primary inline-flex min-h-12 w-full items-center justify-center gap-2 rounded-md border border-gold bg-gold px-7 py-3 text-xs font-light uppercase tracking-[0.22em] text-koenig-weiss transition duration-300 hover:border-gold-dark hover:bg-gold-dark sm:w-auto sm:min-w-64" href="/events" data-astro-cid-ezzh4izy> <span data-astro-cid-ezzh4izy>Ausführliche Informationen →</span> </a> <button type="button" class="service-cards__action-button kontaktopener inl
1045ine-flex min-h-12 w-full cursor-pointer items-center justify-center gap-2 rounded-md px-7 py-3 text-xs font-light uppercase tracking-[0.22em] transition duration-300 sm:w-auto sm:min-w-64 service-cards__action-button--secondary border border-gold/45 bg-transparent text-gold hover:border-gold hover:bg-gold/10 hover:text-gold-dark" data-contact-modal data-contact-query data-astro-cid-ezzh4izy> <span data-astro-cid-ezzh4izy>Beratung anfragen</span> </button> </div> </div> </div> </div> </article><article class="service-cards__item" id="service-artists" data-service-card data-service-open="false" data-reveal data-astro-cid-ezzh4izy> <button type="button" class="service-cards__trigger" id="service-trigger-artists" aria-expanded="false" aria-controls="service-details-artists" data-service-trigger data-astro-cid-ezzh4izy> <span class="service-cards__count" data-astro-cid-ezzh4izy>05</span> <span class="service-cards__trigger-copy" data-astro-cid-ezzh4izy> <span class="service-cards__headline-row" data-astro-cid-ezzh4izy> <span class="service-cards__headline" data-astro-cid-ezzh4izy>Schauspieler- &amp; Künstler-Portraits</span> </span> </span> <span class="service-cards__trigger-icon" aria-hidden="true" data-astro-cid-ezzh4izy>+</span> </button> <div class="service-cards__panel" data-astro-cid-ezzh4izy> <div class="service-cards__slider-row" data-astro-cid-ezzh4izy> <button type="button" class="service-cards__nav service-cards__nav--edge" data-swiper-prev aria-label="Vorherige Bilder für Schauspieler- &amp; Künstler-Portraits" data-astro-cid-ezzh4izy>
1046←
1047</button> <div class="swiper service-cards__swiper" data-service-swiper data-astro-cid-ezzh4izy> <div class="swiper-wrapper" data-astro-cid-ezzh4izy> <div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/a5418215_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 1" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/60956467_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 2" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/ad7cf303_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 3" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/8ce65a61_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 4" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/8916af68_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 5" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/e3d4d60e_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 6" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/24bb0c60_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 7" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/cf92b07e_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 8" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/9affd5fc_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 9" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/8be27d17_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 10" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/82d610a0_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 11" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/7e67c9fa_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 12" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/dfddb065_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 13" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/c17ba68f_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 14" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/19b20744_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 15" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/33955567_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 16" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/929a710e_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 17" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-artists/559de3b4_thumb.avif" alt="Schauspieler- &amp; Künstler-Portraits 18" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div> </div> </div> <button type="button" class="service-cards__nav service-cards__nav
1047--edge" data-swiper-next aria-label="Nächste Bilder für Schauspieler- &amp; Künstler-Portraits" data-astro-cid-ezzh4izy>
1048→
1049</button> </div> <p class="service-cards__panel-indicator" aria-hidden="true" data-astro-cid-ezzh4izy>Mehr ↓</p> <div class="service-cards__details" id="service-details-artists" role="region" aria-labelledby="service-trigger-artists" data-service-details aria-hidden="true" inert data-astro-cid-ezzh4izy> <div class="service-cards__body" data-astro-cid-ezzh4izy> <p class="service-cards__description" data-astro-cid-ezzh4izy> Wir helfen Schauspielern &amp; Künstlern, sich in kraftvollen und ausdrucksstarken Portraits zu präsentieren. Wir haben langjährige Erfahrung in diesem Bereich und wissen, was Caster und Agenturen erwarten. </p> <div class="service-cards__examples-block" data-astro-cid-ezzh4izy> <p class="service-cards__examples-label" data-astro-cid-ezzh4izy>Anwendungsbeispiele</p> <div class="service-cards__examples" aria-label="Beispiele für Schauspieler- &amp; Künstler-Portraits" data-astro-cid-ezzh4izy> <span class="service-cards__example" data-astro-cid-ezzh4izy>Fotos für Casting-Agenturen</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Sedcard-Fotos für Models</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Cover-Fotos für Musiker</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Portraits für Künstler-Websites</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Fotos für Theater- und Filmproduktionen</span>  </div> </div> <div class="service-cards__actions" data-astro-cid-ezzh4izy> <a class="service-cards__action-button service-cards__action-button--primary inline-flex min-h-12 w-full items-center justify-center gap-2 rounded-md border border-gold bg-gold px-7 py-3 text-xs font-light uppercase tracking-[0.22em] text-koenig-weiss transition duration-300 hover:border-gold-dark hover:bg-gold-dark sm:w-auto sm:min-w-64" href="/artists" data-astro-cid-ezzh4izy> <span data-astro-cid-ezzh4izy>Ausführliche Informationen →</span> </a> <button type="button" class="service-cards__action-button kontaktopener inl
1049ine-flex min-h-12 w-full cursor-pointer items-center justify-center gap-2 rounded-md px-7 py-3 text-xs font-light uppercase tracking-[0.22em] transition duration-300 sm:w-auto sm:min-w-64 service-cards__action-button--secondary border border-gold/45 bg-transparent text-gold hover:border-gold hover:bg-gold/10 hover:text-gold-dark" data-contact-modal data-contact-query data-astro-cid-ezzh4izy> <span data-astro-cid-ezzh4izy>Beratung anfragen</span> </button> </div> </div> </div> </div> </article><article class="service-cards__item" id="service-raum-gebaeude" data-service-card data-service-open="false" data-reveal data-astro-cid-ezzh4izy> <button type="button" class="service-cards__trigger" id="service-trigger-raum-gebaeude" aria-expanded="false" aria-controls="service-details-raum-gebaeude" data-service-trigger data-astro-cid-ezzh4izy> <span class="service-cards__count" data-astro-cid-ezzh4izy>06</span> <span class="service-cards__trigger-copy" data-astro-cid-ezzh4izy> <span class="service-cards__headline-row" data-astro-cid-ezzh4izy> <span class="service-cards__headline" data-astro-cid-ezzh4izy>Raum- &amp; Gebäude-Fotografie</span> </span> </span> <span class="service-cards__trigger-icon" aria-hidden="true" data-astro-cid-ezzh4izy>+</span> </button> <div class="service-cards__panel" data-astro-cid-ezzh4izy> <div class="service-cards__slider-row" data-astro-cid-ezzh4izy> <button type="button" class="service-cards__nav service-cards__nav--edge" data-swiper-prev aria-label="Vorherige Bilder für Raum- &amp; Gebäude-Fotografie" data-astro-cid-ezzh4izy>
1050←
1051</button> <div class="swiper service-cards__swiper" data-service-swiper data-astro-cid-ezzh4izy> <div class="swiper-wrapper" data-astro-cid-ezzh4izy> <div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/f850b903_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 1" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/be5a20cb_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 2" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/bab50632_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 3" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/29e49d4a_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 4" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/8c12228d_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 5" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/7d6f76ef_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 6" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/4551d971_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 7" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/54100176_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 8" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/5354d896_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 9" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/66ebf8fb_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 10" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/03932c30_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 11" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/151b1d04_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 12" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/b7e8ff4d_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 13" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/a1ae20c8_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 14" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/84308a6b_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 15" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/21451a61_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 16" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/95955cbf_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 17" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-raum-gebaeude/2460623b_thumb.avif" alt="Raum- &amp; Gebäude-Fotografie 18" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div> </div> </div> <button type="button" class="service-cards__nav service-cards__nav
1051--edge" data-swiper-next aria-label="Nächste Bilder für Raum- &amp; Gebäude-Fotografie" data-astro-cid-ezzh4izy>
1052→
1053</button> </div> <p class="service-cards__panel-indicator" aria-hidden="true" data-astro-cid-ezzh4izy>Mehr ↓</p> <div class="service-cards__details" id="service-details-raum-gebaeude" role="region" aria-labelledby="service-trigger-raum-gebaeude" data-service-details aria-hidden="true" inert data-astro-cid-ezzh4izy> <div class="service-cards__body" data-astro-cid-ezzh4izy> <p class="service-cards__description" data-astro-cid-ezzh4izy> König Photographie macht attraktive Fotos von Ihren Praxis-, Büro- oder anderen Geschäftsräumen. Mit unseren stimmungsvollen Innen- und Außenfotos begeistern Sie (potenzielle) Kunden, Patienten und Mitarbeiter. </p> <div class="service-cards__examples-block" data-astro-cid-ezzh4izy> <p class="service-cards__examples-label" data-astro-cid-ezzh4izy>Anwendungsbeispiele</p> <div class="service-cards__examples" aria-label="Beispiele für Raum- &amp; Gebäude-Fotografie" data-astro-cid-ezzh4izy> <span class="service-cards__example" data-astro-cid-ezzh4izy>Außenaufnahmen Gebäude</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Fotos Praxis- oder Büroräume</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Fotos von Bürodetails wie Geräten oder Kunstwerken</span>  </div> </div> <div class="service-cards__actions" data-astro-cid-ezzh4izy> <a class="service-cards__action-button service-cards__action-button--primary inline-flex min-h-12 w-full items-center justify-center gap-2 rounded-md border border-gold bg-gold px-7 py-3 text-xs font-light uppercase tracking-[0.22em] text-koenig-weiss transition duration-300 hover:border-gold-dark hover:bg-gold-dark sm:w-auto sm:min-w-64" href="/office" data-astro-cid-ezzh4izy> <span data-astro-cid-ezzh4izy>Ausführliche Informationen →</span> </a> <button type="button" class="service-cards__action-button kontaktopener inl
1053ine-flex min-h-12 w-full cursor-pointer items-center justify-center gap-2 rounded-md px-7 py-3 text-xs font-light uppercase tracking-[0.22em] transition duration-300 sm:w-auto sm:min-w-64 service-cards__action-button--secondary border border-gold/45 bg-transparent text-gold hover:border-gold hover:bg-gold/10 hover:text-gold-dark" data-contact-modal data-contact-query data-astro-cid-ezzh4izy> <span data-astro-cid-ezzh4izy>Beratung anfragen</span> </button> </div> </div> </div> </div> </article><article class="service-cards__item" id="service-werbung" data-service-card data-service-open="false" data-reveal data-astro-cid-ezzh4izy> <button type="button" class="service-cards__trigger" id="service-trigger-werbung" aria-expanded="false" aria-controls="service-details-werbung" data-service-trigger data-astro-cid-ezzh4izy> <span class="service-cards__count" data-astro-cid-ezzh4izy>07</span> <span class="service-cards__trigger-copy" data-astro-cid-ezzh4izy> <span class="service-cards__headline-row" data-astro-cid-ezzh4izy> <span class="service-cards__headline" data-astro-cid-ezzh4izy>Werbe-Fotografie</span> </span> </span> <span class="service-cards__trigger-icon" aria-hidden="true" data-astro-cid-ezzh4izy>+</span> </button> <div class="service-cards__panel" data-astro-cid-ezzh4izy> <div class="service-cards__slider-row" data-astro-cid-ezzh4izy> <button type="button" class="service-cards__nav service-cards__nav--edge" data-swiper-prev aria-label="Vorherige Bilder für Werbe-Fotografie" data-astro-cid-ezzh4izy>
1054←
1055</button> <div class="swiper service-cards__swiper" data-service-swiper data-astro-cid-ezzh4izy> <div class="swiper-wrapper" data-astro-cid-ezzh4izy> <div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-werbung/f81c8b3a_thumb.avif" alt="Werbe-Fotografie 1" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-werbung/bd9c00f4_thumb.avif" alt="Werbe-Fotografie 2" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-werbung/8ae4cf00_thumb.avif" alt="Werbe-Fotografie 3" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-werbung/64a4fd02_thumb.avif" alt="Werbe-Fotografie 4" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-werbung/15309c3f_thumb.avif" alt="Werbe-Fotografie 5" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-werbung/dfba4f4f_thumb.avif" alt="Werbe-Fotografie 6" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-werbung/20cd4325_thumb.avif" alt="Werbe-Fotografie 7" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-werbung/f3110809_thumb.avif" alt="Werbe-Fotografie 8" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-werbung/f07b2db7_thumb.avif" alt="Werbe-Fotografie 9" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-werbung/07729fcf_thumb.avif" alt="Werbe-Fotografie 10" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-werbung/a15f6160_thumb.avif" alt="Werbe-Fotografie 11" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-werbung/ff04da0d_thumb.avif" alt="Werbe-Fotografie 12" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-werbung/dbab8afc_thumb.avif" alt="Werbe-Fotografie 13" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-werbung/860b1356_thumb.avif" alt="Werbe-Fotografie 14" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-werbung/7bb3535f_thumb.avif" alt="Werbe-Fotografie 15" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div> </div> </div> <button type="button" class="service-cards__nav service-cards__nav
1055--edge" data-swiper-next aria-label="Nächste Bilder für Werbe-Fotografie" data-astro-cid-ezzh4izy>
1056→
1057</button> </div> <p class="service-cards__panel-indicator" aria-hidden="true" data-astro-cid-ezzh4izy>Mehr ↓</p> <div class="service-cards__details" id="service-details-werbung" role="region" aria-labelledby="service-trigger-werbung" data-service-details aria-hidden="true" inert data-astro-cid-ezzh4izy> <div class="service-cards__body" data-astro-cid-ezzh4izy> <p class="service-cards__description" data-astro-cid-ezzh4izy> Koenig Photographie bietet Ihnen mehr als nur Werbefotografie. Wir sind auch Ihr kompetenter Partner für Cover-Shootings, Magazin-Strecken und Interviews. Ob Sie ein neues Produkt vorstellen, eine spannende Geschichte erzählen oder ein bekanntes Gesicht präsentieren wollen - wir sorgen dafür, dass Ihre Botschaft mit den passenden Bildern unterstrichen wird. </p> <div class="service-cards__examples-block" data-astro-cid-ezzh4izy> <p class="service-cards__examples-label" data-astro-cid-ezzh4izy>Anwendungsbeispiele</p> <div class="service-cards__examples" aria-label="Beispiele für Werbe-Fotografie" data-astro-cid-ezzh4izy> <span class="service-cards__example" data-astro-cid-ezzh4izy>Cover-Shooting Magazin</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Fotos Interview-Strecke Unternehmer</span>  </div> </div> <div class="service-cards__actions" data-astro-cid-ezzh4izy>  <button type="button" class="service-cards__action-button kontaktopener inl
1057ine-flex min-h-12 w-full cursor-pointer items-center justify-center gap-2 rounded-md px-7 py-3 text-xs font-light uppercase tracking-[0.22em] transition duration-300 sm:w-auto sm:min-w-64 service-cards__action-button--primary border border-gold bg-gold text-koenig-weiss hover:border-gold-dark hover:bg-gold-dark" data-contact-modal data-contact-query data-astro-cid-ezzh4izy> <span data-astro-cid-ezzh4izy>Beratung anfragen</span> </button> </div> </div> </div> </div> </article><article class="service-cards__item" id="service-privat" data-service-card data-service-open="false" data-reveal data-astro-cid-ezzh4izy> <button type="button" class="service-cards__trigger" id="service-trigger-privat" aria-expanded="false" aria-controls="service-details-privat" data-service-trigger data-astro-cid-ezzh4izy> <span class="service-cards__count" data-astro-cid-ezzh4izy>08</span> <span class="service-cards__trigger-copy" data-astro-cid-ezzh4izy> <span class="service-cards__headline-row" data-astro-cid-ezzh4izy> <span class="service-cards__headline" data-astro-cid-ezzh4izy>Private Portrait-Fotografie</span> </span> </span> <span class="service-cards__trigger-icon" aria-hidden="true" data-astro-cid-ezzh4izy>+</span> </button> <div class="service-cards__panel" data-astro-cid-ezzh4izy> <div class="service-cards__slider-row" data-astro-cid-ezzh4izy> <button type="button" class="service-cards__nav service-cards__nav--edge" data-swiper-prev aria-label="Vorherige Bilder für Private Portrait-Fotografie" data-astro-cid-ezzh4izy>
1058←
1059</button> <div class="swiper service-cards__swiper" data-service-swiper data-astro-cid-ezzh4izy> <div class="swiper-wrapper" data-astro-cid-ezzh4izy> <div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/0dbc5c41_thumb.avif" alt="Private Portrait-Fotografie 1" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/b12ff699_thumb.avif" alt="Private Portrait-Fotografie 2" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/9fd4f3ab_thumb.avif" alt="Private Portrait-Fotografie 3" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/c23d77bc_thumb.avif" alt="Private Portrait-Fotografie 4" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/08c175e4_thumb.avif" alt="Private Portrait-Fotografie 5" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/1578acb1_thumb.avif" alt="Private Portrait-Fotografie 6" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/b7f88e6b_thumb.avif" alt="Private Portrait-Fotografie 7" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/a17101fb_thumb.avif" alt="Private Portrait-Fotografie 8" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/36bdc280_thumb.avif" alt="Private Portrait-Fotografie 9" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/6aedea09_thumb.avif" alt="Private Portrait-Fotografie 10" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/99f703a0_thumb.avif" alt="Private Portrait-Fotografie 11" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/f488f17d_thumb.avif" alt="Private Portrait-Fotografie 12" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/3898ecc3_thumb.avif" alt="Private Portrait-Fotografie 13" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/fc3f1d8e_thumb.avif" alt="Private Portrait-Fotografie 14" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/f5bd85a3_thumb.avif" alt="Private Portrait-Fotografie 15" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div><div class="swiper-slide service-cards__slide" data-astro-cid-ezzh4izy> <img src="https://api.koenig-photographie.de/lp-assets/galleries/koenig/overview-privat/ea3b07ed_thumb.avif" alt="Private Portrait-Fotografie 16" loading="eager" decoding="async" data-astro-cid-ezzh4izy> </div> </div> </div> <button type="button" class="service-cards__nav service-cards__nav
1059--edge" data-swiper-next aria-label="Nächste Bilder für Private Portrait-Fotografie" data-astro-cid-ezzh4izy>
1060→
1061</button> </div> <p class="service-cards__panel-indicator" aria-hidden="true" data-astro-cid-ezzh4izy>Mehr ↓</p> <div class="service-cards__details" id="service-details-privat" role="region" aria-labelledby="service-trigger-privat" data-service-details aria-hidden="true" inert data-astro-cid-ezzh4izy> <div class="service-cards__body" data-astro-cid-ezzh4izy> <p class="service-cards__description" data-tone-du="Du möchtest dir selbst oder jemandem, den du liebst, ein besonderes Geschenk machen? Dann bist du bei König Photographie genau richtig. Wir bieten dir professionelle und individuelle Einzelportraits, die deine Persönlichkeit und deine Schönheit zum Ausdruck bringen." data-tone-sie="Sie möchten sich selbst oder jemandem, den Sie lieben, ein besonderes Geschenk machen? Dann sind Sie bei König Photographie genau richtig. Wir bieten Ihnen professionelle und individuelle Einzelportraits, die Ihre Persönlichkeit und Ihre Schönheit zum Ausdruck bringen." data-astro-cid-ezzh4izy> Sie möchten sich selbst oder jemandem, den Sie lieben, ein besonderes Geschenk machen? Dann sind Sie bei König Photographie genau richtig. Wir bieten Ihnen professionelle und individuelle Einzelportraits, die Ihre Persönlichkeit und Ihre Schönheit zum Ausdruck bringen. </p> <div class="service-cards__examples-block" data-astro-cid-ezzh4izy> <p class="service-cards__examples-label" data-astro-cid-ezzh4izy>Anwendungsbeispiele</p> <div class="service-cards__examples" aria-label="Beispiele für Private Portrait-Fotografie" data-astro-cid-ezzh4izy> <span class="service-cards__example" data-astro-cid-ezzh4izy>Glamour-Shooting für einen besonderen Anlass</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Selbstfindungs-Shooting neue Lebensphase</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Social-Media-Shooting für einen starken Auftritt</span> <span class="service-cards__example-separator" aria-hidden="true" data-astro-cid-ezzh4izy>·</span><span class="service-cards__example" data-astro-cid-ezzh4izy>Fotos für Einladungskarten</span>  </div> </div> <div class="service-cards__actions" data-astro-cid-ezzh4izy> <a class="service-cards__action-button service-cards__action-button--primary inline-flex min-h-12 w-full items-center justify-center gap-2 rounded-md border border-gold bg-gold px-7 py-3 text-xs font-light uppercase tracking-[0.22em] text-koenig-weiss transition duration-300 hover:border-gold-dark hover:bg-gold-dark sm:w-auto sm:min-w-64" href="/portfolio/serien/" data-astro-cid-ezzh4izy> <span data-astro-cid-ezzh4izy>Kundenbeispiele →</span> </a> <button type="button" class="service-cards__action-button kontaktopener inl
1061ine-flex min-h-12 w-full cursor-pointer items-center justify-center gap-2 rounded-md px-7 py-3 text-xs font-light uppercase tracking-[0.22em] transition duration-300 sm:w-auto sm:min-w-64 service-cards__action-button--secondary border border-gold/45 bg-transparent text-gold hover:border-gold hover:bg-gold/10 hover:text-gold-dark" data-contact-modal data-contact-query data-astro-cid-ezzh4izy> <span data-astro-cid-ezzh4izy>Beratung anfragen</span> </button> </div> </div> </div> </div> </article> </div> </div> </section> 
1061<script type="module" src="/_astro/ServiceCards.astro_astro_type_script_index_0_lang.CTbDFsKs.js"></script>
1061 <section class="bg-beige text-koenig-text" data-reveal> <div class="mx-auto max-w-6xl px-4 py-12 text-center md:px-8 md:py-16 lg:px-12 lg:py-20"> <div class="space-y-6 lg:space-y-8"> <p class="eyebrow">Nächster Schritt</p> <h2 class="text-3xl font-extralight leading-tight tracking-[-0.02em] md:text-4xl lg:text-5xl"> Lassen Sie uns <em class="font-serif font-medium italic text-gold" data-reveal-accent>loslegen.</em> </h2> <p class="mx-auto max-w-2xl text-base font-light leading-relaxed text-koenig-text/65 md:text-lg"> Erzählen Sie uns kurz, welche Portraits geplant sind. Wir melden uns zeitnah mit einer passenden Empfehlung. </p> </div> <div class="mt-10 flex flex-col items-center gap-6 md:mt-12"> <div class="flex flex-col items-center justify-center gap-4 md:flex-row"> <button type="button" class="kontaktopener inline-flex w-full max-w-sm items-center justify-center rounded-md bg-gold px-8 py-3 text-sm font-light uppercase tracking-[0.24em] text-koenig-weiss transition duration-300 hover:bg-gold-dark sm:w-auto sm:min-w-64" data-contact-modal="beratung" data-contact-query="beratung"> Beratungstermin buchen </button>
1061 <button type="button" class="kontaktopener inline-flex w-full max-w-sm items-center justify-center rounded-md bg-gold px-8 py-3 text-sm font-light uppercase tracking-[0.24em] text-koenig-weiss transition duration-300 hover:bg-gold-dark sm:w-auto sm:min-w-64" data-contact-modal="form" data-contact-query="form"> Nachricht senden </button> </div> <div class="flex items-center gap-3 text-xs font-light uppercase tracking-[0.24em] text-koenig-text/45"> <span class="h-px w-6 bg-koenig-text/15 sm:w-8"></span> <span>oder direkt</span> <span class="h-px w-6 bg-koenig-text/15 sm:w-8"></span> </div> <div class="flex flex-col items-center justify-center gap-3 md:flex-row md:gap-4" data-cta-direct> <button type="button" data-link="tel:+4915170066599" class="inline-flex w-full max-w-xs items-center justify-center rounded-md border border-gold/45 bg-transparent px-6 py-2.5 text-xs font-light uppercase tracking-[0.22em] text-gold transition duration-300 hover:border-gold hover:bg-gold/10 sm:w-auto sm:min-w-44"> Anrufen </button><button type="button" data-link="https://wa.me/4915170066599" data-link-blank class="inline-flex w-full max-w-xs items-center justify-center rounded-md border border-gold/45 bg-transparent px-6 py-2.5 text-xs font-light uppercase tracking-[0.22em] text-gold transition duration-300 hover:border-gold hover:bg-gold/10 sm:w-auto sm:min-w-44"> WhatsApp </button><button type="button" data-link="mailto:[email protected]" class="inline-flex w-full max-w-xs items-center justify-center rounded-md border border-gold/45 bg-transparent px-6 py-2.5 text-xs font-light uppercase tracking-[0.22em] text-gold transition duration-300 hover:border-gold hover:bg-gold/10 sm:w-auto sm:min-w-44"> E-Mail </button> </div> </div> </div> </section> 
1061<script>
1062  // Direkt-Kontakte (Tel/Mail/WhatsApp) sind button[data-link] -> werden vom
1063  // GTM-Soft-Conversion-Trigger (closest('button[data-link]')) erfasst.
1064  // Navigation hier, scoped auf [data-cta-direct], damit der Modal-data-link-Handler unberührt bleibt.
1065  if (!window.__ctaDirectLinkBound) {
1066    window.__ctaDirectLinkBound = true;
1067    document.addEventListener('click', (event) => {
1068      const btn = event.target.closest('[data-cta-direct] button[data-link]');
1069      if (!btn) return;
1070      const url = btn.getAttribute('data-link');
1071      if (!url) return;
1072      if (btn.hasAttribute('data-link-blank') || /^https?:/i.test(url)) {
1073        window.open(url, '_blank', 'noopener,noreferrer');
1074      } else {
1075        window.location.href = url;
1076      }
1077    });
1078  }
1079</script>
1079   </main> <footer class="bg-beige text-koenig-text/80" data-reveal> <div class="mx-auto grid max-w-7xl gap-12 px-4 py-16 md:grid-cols-3 md:px-8 lg:px-12"> <div class="space-y-5"> <p class="mb-4 text-xs font-normal uppercase tracking-[0.2em] text-gold">König Photographie</p> <p class="max-w-sm text-2xl font-extralight leading-tight tracking-tight text-koenig-text md:text-3xl"> <span class="whitespace-nowrap">Starke Bilder,</span>  <span class="whitespace-nowrap">die wirken.</span> </p> </div> <div class="space-y-5"> <p class="mb-4 text-xs font-normal uppercase tracking-[0.2em] text-gold">Hauptseite</p> <nav aria-label="Footer Navigation"> <ul class="space-y-3 text-sm font-light text-koenig-text/72 md:text-base"> <li> <a class="transition hover:text-gold" href="/"> Startseite </a> </li><li> <a class="transition hover:text-gold" href="/about"> About </a> </li><li> <a class="transition hover:text-gold" href="/shooting"> Shootings </a> </li><li> <a class="transition hover:text-gold" href="/portfolio/serien"> Portfolio-Galerien </a> </li> </ul> </nav> </div> <div class="space-y-8 text-sm md:text-base"> <div> <p class="mb-4 text-xs font-normal uppercase tracking-[0.2em] text-gold">Studios</p> <div class="space-y-3 text-sm font-light text-koenig-text/72"> <p> <span class="text-koenig-text">München</span> ·
1080<a href="https://maps.google.com/?q=Ludwig-Richter-Stra%C3%9Fe+24,+80687+M%C3%BCnchen" target="_blank" rel="noopener noreferrer" class="transition-colors hover:text-gold"> Ludwig-Richter-Straße 24, 80687 München </a> </p><p> <span class="text-koenig-text">Berlin</span> ·
1081<a href="https://maps.google.com/?q=Markgrafendamm+33,+10245+Berlin" target="_blank" rel="noopener noreferrer" class="transition-colors hover:text-gold"> Markgrafendamm 33, 10245 Berlin </a> </p> </div> </div> <div> <p class="mb-4 text-xs font-normal uppercase tracking-[0.2em] text-gold">Kontakt</p> <ul class="space-y-3 text-sm font-light text-koenig-text/72"> <li> <button type="button" class="kontaktopener cursor-pointer border-0 bg-transparent p-0 text-left font-light text-koenig-text/72 transition-colors hover:text-gold" data-contact-modal="kontakt"> +49 151 700 66 599 </button> </li><li> <button type="button" class="kontaktopener cursor-pointer border-0 bg-transparent p-0 text-left font-light text-koenig-text/72 transition-colors hover:text-gold" data-contact-modal="kontakt"> WhatsApp </button> </li><li> <button type="button" class="kontaktopener cursor-pointer border-0 bg-transparent p-0 text-left font-light text-koenig-text/72 transition-colors hover:text-gold" data-contact-modal="kontakt"> [email protected] </button> </li> </ul> </div> </div> </div> <div class="border-t border-koenig-text/10 px-4 py-5 md:px-8 lg:px-12"> <div class="mx-auto flex max-w-7xl flex-col gap-3 text-xs uppercase tracking-[0.22em] text-koenig-text/55 md:flex-row md:items-center md:justify-between"> <p>König Photographie</p> <nav aria-label="Rechtliches"> <ul class="flex flex-wrap gap-4"> <li> <a class="transition hover:text-gold" href="/impressum"> impressum </a> </li><li> <a class="transition hover:text-gold" href="/datenschutz"> datenschutz </a> </li><li> <a class="transition hover:text-gold" href="/agb"> agbs </a> </li> </ul> </nav> </div> </div> </footer> 
1081<script>window.KOENIG_CONTACT_HERO_URL = "https://api.koenig-photographie.de/lp-assets/portfolio-overview/hero/dennis-overview-hero.webp";</script>
1081<script>window.KOENIG_CONTACT_TONE = "sie";</script>
1081<script src="https://api.koenig-photographie.de/addin/contact-modal/contact-modal.js" defer></script>
1081<style>
1082  .contact-modal .cm-form-bridge {
1083    align-items: center;
1084  }
1085
1086  .contact-modal .cm-form-bridge-copy {
1087    flex: 1;
1088    min-width: 0;
1089  }
1090
1091  .contact-modal .cm-form-bridge .cm-action-value,
1092  .contact-modal .cm-form-bridge .cm-action-sub {
1093    max-width: 22rem;
1094  }
1095</style>
1095<script>
1096  (() => {
1097    const getTone = () => {
1098      const derivedTone = window.koenigContext && window.koenigContext.derived && window.koenigContext.derived.tone;
1099
1100      if (derivedTone === 'du' || window.KOENIG_CONTACT_TONE === 'du') {
1101        return 'du';
1102      }
1103
1104      return 'sie';
1105    };
1106
1107    const copyMap = {
1108      sie: {
1109        screen1Headline: 'Wie können wir <em>helfen?</em>',
1110        screen1Copy: 'Schriftlich, telefonisch oder im persönlichen Gespräch - finden Sie den Weg, der für Sie passt.',
1111        formHeadline: 'Ihre <em>Anfrage</em>.',
1112        contactHeadline: 'So <em>finden Sie uns</em>.',
1113        bridgeEyebrow: 'Kontaktformular',
1114        bridgeTitle: 'Nachricht senden',
1115        bridgeSub: 'Schreiben Sie uns direkt und unkompliziert.',
1116        callbackNote: 'Wir melden uns bei Ihnen für eine unverbindliche Telefonberatung.',
1117        calendarHint: 'Nach der Buchung erhalten Sie eine Kalender-Einladung per E-Mail.',
1118        calendarErrorHint: 'Termine konnten nicht geladen werden. Schreiben Sie uns stattdessen Ihre Anfrage - wir melden uns.',
1119        privacyHtml:
1120          'Mit dem Absenden stimmen Sie der Verarbeitung Ihrer Daten gemäß <a href="/datenschutz" target="_blank" rel="noopener noreferrer">Datenschutzerklärung</a> zu.',
1121        successMessage: 'Ihre Nachricht ist bei uns. Wir melden uns zeitnah.',
1122        successBooking: 'Der Termin ist reserviert. Sie erhalten in Kürze eine Kalender-Einladung per E-Mail.',
1123      },
1124      du: {
1125        screen1Headline: 'Wie können wir <em>dir helfen?</em>',
1126        screen1Copy: 'Schriftlich, telefonisch oder im persönlichen Gespräch - finde den Weg, der für dich passt.',
1127        formHeadline: 'Deine <em>Anfrage</em>.',
1128        contactHeadline: 'So <em>findest du uns</em>.',
1129        bridgeEyebrow: 'Kontaktformular',
1130        bridgeTitle: 'Nachricht senden',
1131        bridgeSub: 'Schreibe uns direkt und unkompliziert.',
1132        callbackNote: 'Wir melden uns bei dir für eine unverbindliche Telefonberatung.',
1133        calendarHint: 'Nach der Buchung erhältst du eine Kalender-Einladung per E-Mail.',
1134        calendarErrorHint: 'Termine konnten nicht geladen werden. Schreib uns stattdessen deine Anfrage - wir melden uns.',
1135        privacyHtml:
1136          'Mit dem Absenden stimmst du der Verarbeitung deiner Daten gemäß <a href="/datenschutz" target="_blank" rel="noopener noreferrer">Datenschutzerklärung</a> zu.',
1137        successMessage: 'Deine Nachricht ist bei uns. Wir melden uns zeitnah.',
1138        successBooking: 'Dein Termin ist reserviert. Du erhältst in Kürze eine Kalender-Einladung per E-Mail.',
1139      },
1140    };
1141
1142    const setText = (root, selector, value) => {
1143      const node = root.querySelector(selector);
1144
1145      if (node && node.textContent !== value) {
1146        node.textContent = value;
1147      }
1148    };
1149
1150    const setHtml = (root, selector, value) => {
1151      const node = root.querySelector(selector);
1152
1153      if (node && node.innerHTML !== value) {
1154        node.innerHTML = value;
1155      }
1156    };
1157
1158    const patchFormBridge = (root) => {
1159      const tone = getTone();
1160      const copy = copyMap[tone];
1161      const bridge = root.querySelector('.cm-screen-2b .cm-form-bridge');
1162
1163      if (!(bridge instanceof HTMLElement)) {
1164        return;
1165      }
1166
1167      if (bridge.dataset.copyTone === tone) {
1168        return;
1169      }
1170
1171      bridge.innerHTML = `
1172        <div class="cm-form-bridge-copy cm-action-meta">
1173          <p class="cm-action-label">${copy.bridgeEyebrow}</p>
1174          <p class="cm-action-value">${copy.bridgeTitle}</p>
1175          <p class="cm-action-sub">${copy.bridgeSub}</p>
1176        </div>
1177        <span class="cm-form-bridge-arrow" aria-hidden="true">→</span>
1178      `;
1179      bridge.dataset.copyTone = tone;
1180    };
1181
1182    const patchCalendarHint = (root) => {
1183      const copy = copyMap[getTone()];
1184      const hint = root.querySelector('.cm-screen-2a .cm-calendar .cm-hint');
1185
1186      if (!(hint instanceof HTMLElement)) {
1187        return;
1188      }
1189
1190      const text = (hint.textContent || '').trim();
1191
1192      if (!text) {
1193        return;
1194      }
1195
1196      if (text.includes('Termine konnten nicht geladen')) {
1197        if (text !== copy.calendarErrorHint) {
1198          hint.textContent = copy.calendarErrorHint;
1199        }
1200        return;
1201      }
1202
1203      if (text !== copy.calendarHint) {
1204        hint.textContent = copy.calendarHint;
1205      }
1206    };
1207
1208    const patchSuccessMessage = (root) => {
1209      const copy = copyMap[getTone()];
1210      const message = root.querySelector('.cm-success p');
1211
1212      if (!(message instanceof HTMLElement)) {
1213        return;
1214      }
1215
1216      const text = (message.textContent || '').trim();
1217      const nextText = text.includes('Kalender-Einladung') ? copy.successBooking : copy.successMessage;
1218
1219      if (text !== nextText) {
1220        message.textContent = nextText;
1221      }
1222    };
1223
1224    const normalizeFormMode = (mode) => {
1225      if (mode !== 'form' && mode !== 'beratung') {
1226        return;
1227      }
1228
1229      const shouldCheck = mode === 'beratung';
1230      let attempts = 0;
1231
1232      const syncCheckbox = () => {
1233        attempts += 1;
1234
1235        const checkbox = document.querySelector('#cm-callback-check');
1236
1237        if (checkbox instanceof HTMLInputElement) {
1238          if (checkbox.checked !== shouldCheck) {
1239            checkbox.checked = shouldCheck;
1240            checkbox.dispatchEvent(new Event('input', { bubbles: true }));
1241            checkbox.dispatchEvent(new Event('change', { bubbles: true }));
1242          }
1243
1244          schedulePatch();
1245          return;
1246        }
1247
1248        if (attempts < 12) {
1249          window.requestAnimationFrame(syncCheckbox);
1250        }
1251      };
1252
1253      window.requestAnimationFrame(syncCheckbox);
1254    };
1255
1256    const patchModal = () => {
1257      const copy = copyMap[getTone()];
1258      const modal = document.querySelector('.contact-modal');
1259
1260      if (!(modal instanceof HTMLElement)) {
1261        return;
1262      }
1263
1264      setHtml(modal, '.cm-screen-1 .cm-headline', copy.screen1Headline);
1265      setText(modal, '.cm-screen-1 .cm-copy', copy.screen1Copy);
1266      setHtml(modal, '.cm-screen-2a .cm-headline', copy.formHeadline);
1267      setText(modal, '.cm-screen-2a .cm-callback-note', copy.callbackNote);
1268      setHtml(modal, '.cm-screen-2a .cm-privacy', copy.privacyHtml);
1269      setHtml(modal, '.cm-screen-2b .cm-headline', copy.contactHeadline);
1270      patchFormBridge(modal);
1271      patchCalendarHint(modal);
1272      patchSuccessMessage(modal);
1273    };
1274
1275    let rafId = 0;
1276    const schedulePatch = () => {
1277      if (rafId) {
1278        return;
1279      }
1280
1281      rafId = window.requestAnimationFrame(() => {
1282        rafId = 0;
1283        patchModal();
1284      });
1285    };
1286
1287    const start = () => {
1288      schedulePatch();
1289
1290      const observer = new MutationObserver(() => {
1291        schedulePatch();
1292      });
1293
1294      observer.observe(document.body, {
1295        childList: true,
1296        subtree: true,
1297      });
1298
1299      document.addEventListener('click', (event) => {
1300        const target = event.target;
1301
1302        if (!(target instanceof Element)) {
1303          return;
1304        }
1305
1306        const opener = target.closest('.kontaktopener, [data-contact-modal], [data-contact-query]');
1307
1308        if (opener instanceof HTMLElement) {
1309          const query = opener.dataset.contactQuery;
1310
1311          if (query === 'form' || query === 'beratung') {
1312            window.requestAnimationFrame(() => normalizeFormMode(query));
1313            window.setTimeout(() => normalizeFormMode(query), 140);
1314          }
1315
1316          schedulePatch();
1317        }
1318      }, true);
1319    };
1320
1321    if (document.readyState === 'loading') {
1322      document.addEventListener('DOMContentLoaded', start, { once: true });
1323    } else {
1324      start();
1325    }
1326  })();
1327</script>
1327 <a href="/about#googleBewertung" target="_blank" rel="noopener noreferrer" aria-label="Google Bewertungen ansehen — 5.0 Sterne" class="google-badge fixed bottom-3 right-3 z-40 hidden cursor-pointer overflow-hidden rounded-[1rem] bg-gold shadow-float transition-[transform,box-shadow] duration-200 hover:scale-105 hover:shadow-float-hover print:hidden min-[380px]:block md:bottom-5 md:right-5 lg:bottom-8 lg:right-8" data-astro-cid-7kq2hzbx> <img src="https://api.koenig-photographie.de/addin/[email protected]" alt="Google Bewertung 5.0 Sterne" width="85" height="190" class="block h-[134px] w-[60px] md:h-[161px] md:w-[72px] lg:h-[190px] lg:w-[85px]" loading="lazy" decoding="async" data-astro-cid-7kq2hzbx> </a> 
1327<script>
1328  (() => {
1329    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
1330    const revealElements = document.querySelectorAll('[data-reveal]');
1331    const lazyImages = document.querySelectorAll('img[loading="lazy"]');
1332
1333    const markImageLoaded = (img) => {
1334      if (!(img instanceof HTMLImageElement)) {
1335        return;
1336      }
1337
1338      img.classList.add('is-loaded');
1339      img.dataset.loaded = 'true';
1340    };
1341
1342    lazyImages.forEach((img) => {
1343      if (!(img instanceof HTMLImageElement)) {
1344        return;
1345      }
1346
1347      if (img.complete && img.naturalHeight !== 0) {
1348        markImageLoaded(img);
1349        return;
1350      }
1351
1352      img.addEventListener('load', () => markImageLoaded(img), { once: true });
1353      img.addEventListener('error', () => markImageLoaded(img), { once: true });
1354    });
1355
1356    // Sichtbarkeits-Schwelle: 15% der Element-Höhe, aber gedeckelt auf 120px –
1357    // sonst erscheinen hohe Sektionen erst nach mehreren hundert Pixeln Scrollen.
1358    const requiredVisibleHeight = (height) => Math.max(Math.min(height * 0.15, 120), 1);
1359
1360    const revealVisibleElements = () => {
1361      const viewportHeight = window.innerHeight || document.documentElement.clientHeight;
1362
1363      revealElements.forEach((element) => {
1364        if (!(element instanceof HTMLElement) || element.classList.contains('is-revealed')) {
1365          return;
1366        }
1367
1368        const rect = element.getBoundingClientRect();
1369        const visibleHeight = Math.min(rect.bottom, viewportHeight) - Math.max(rect.top, 0);
1370
1371        if (visibleHeight > requiredVisibleHeight(rect.height)) {
1372          element.classList.add('is-revealed-initial');
1373          element.classList.add('is-revealed');
1374        }
1375      });
1376    };
1377
1378    if (prefersReducedMotion || !('IntersectionObserver' in window)) {
1379      revealElements.forEach((element) => element.classList.add('is-revealed'));
1380    } else {
1381      // Feingranulare Thresholds, damit der Pixel-Deckel auch bei hohen
1382      // Elementen früh genug einen Callback bekommt (1%-Schritte bis 20%).
1383      const thresholds = [];
1384      for (let step = 0; step <= 20; step += 1) {
1385        thresholds.push(step / 100);
1386      }
1387
1388      const revealObserver = new IntersectionObserver(
1389        (entries) => {
1390          let staggerIndex = 0;
1391
1392          entries.forEach((entry) => {
1393            if (!entry.isIntersecting || !(entry.target instanceof HTMLElement)) {
1394              return;
1395            }
1396
1397            const height = entry.boundingClientRect.height;
1398
1399            if (height > 0 && entry.intersectionRect.height <= requiredVisibleHeight(height)) {
1400              return;
1401            }
1402
1403            if (!entry.target.classList.contains('is-revealed')) {
1404              // Tauchen mehrere Elemente im selben Callback auf, versetzt einblenden
1405              entry.target.style.setProperty('--reveal-delay', `${Math.min(staggerIndex * 80, 400)}ms`);
1406              staggerIndex += 1;
1407              entry.target.classList.add('is-revealed');
1408            }
1409
1410            revealObserver.unobserve(entry.target);
1411          });
1412        },
1413        { threshold: thresholds, rootMargin: '0px 0px -80px 0px' }
1414      );
1415
1416      revealVisibleElements();
1417      requestAnimationFrame(revealVisibleElements);
1418      revealElements.forEach((element) => revealObserver.observe(element));
1419    }
1420  })();
1421</script>
1421 
1421<script>
1422    (function() {
1423      function apply() {
1424        var t = (window.koenigContext && window.koenigContext.derived && window.koenigContext.derived.tone) || 'sie';
1425        if (t === 'sie') return;
1426        document.querySelectorAll('[data-tone-' + t + ']').forEach(function(el) {
1427          var v = el.getAttribute('data-tone-' + t);
1428          if (v != null) el.textContent = v;
1429        });
1430      }
1431      if (window.koenigContext) apply();
1432      else document.addEventListener('DOMContentLoaded', apply);
1433    })();
1434  </script>
1434 </body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.