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 & Berlin | König Photographie</title><meta name="description" content="Professionelle Mitarbeiterfotos, Business-Portraits & 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 & Berlin | König Photographie"><meta property="og:description" content="Professionelle Mitarbeiterfotos, Business-Portraits & 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 & Berlin | König Photographie"><meta name="twitter:description" content="Professionelle Mitarbeiterfotos, Business-Portraits & 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- & 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- & 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- & 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- & 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 & 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 & 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 & 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 &
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- & Künstlerportraits für Bühne & 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- & Künstlerportraits für Bühne & 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- & 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- & 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 & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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 & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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- & 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.