1 2 3 4 5 <!DOCTYPE html> 6 <!-- Site by Artlogic - https://artlogic.net --> 7 <html lang="en"> 8 <head> 9 <meta charset="utf-8"> 10
10<script> 11 /* Artlogic deterministic page-ready signal (see e2e/ + pageload perf notes). 12 Installs a default window.modulesReady that latches window.__artlogicReady, 13 adds a `modules-ready` class to <html>/<body>, and dispatches `artlogic:ready` 14 exactly once. Themes may still wrap window.modulesReady (prevReady pattern); 15 their wrapper chains through to this. All gallery JS loader paths converge on 16 window.modulesReady(); the legacy galleries.js now calls it after init too. */ 17 (function () { 18 var prev = window.modulesReady; 19 window.modulesReady = function () { 20 if (typeof prev === 'function') { try { prev(); } catch (e) {} } 21 if (window.__artlogicReady) { return; } 22 window.__artlogicReady = true; 23 try { document.documentElement.className += ' modules-ready'; } catch (e) {} 24 try { if (document.body) { document.body.className += ' modules-ready'; } } catch (e) {} 25 try { document.dispatchEvent(new CustomEvent('artlogic:ready')); } catch (e) {} 26 }; 27 })(); 28 </script>
28 29 <title>Store | Galerie Thomas Schulte</title> 30 <meta property="og:site_name" content="Galerie Thomas Schulte" /> 31 <meta property="og:title" content="Store" /> 32 <meta property="og:description" content="Shopping basket" /> 33 <meta property="og:image" content="" /> 34 <meta property="og:image:width" content="" /> 35 <meta property="og:image:height" content="" /> 36 <meta property="twitter:card" content="summary_large_image"> 37 <meta property="twitter:url" content="https://www.galeriethomasschulte.com/store/basket/"> 38 <meta property="twitter:title" content="Store"> 39 <meta property="twitter:description" content="Shopping basket"> 40 <meta property="twitter:text:description" content="Shopping basket"> 41 <meta property="twitter:image" content=""> 42 <link rel="canonical" href="https://www.galeriethomasschulte.com/store/" /> 43 <meta name="google" content="notranslate" /> 44 <meta name="description" content="Shopping basket" /> 45 <meta name="publication_date" content="2026-10-02 19:31:39" /> 46 <meta name="generator" content="Artlogic CMS - https://artlogic.net" /> 47 48 <meta name="accessibility_version" content="1.0"/> 49 50 51 <meta name="viewport" content="width=device-width, minimum-scale=0.5, initial-scale=1.0" /> 52 53 54 55<link rel="icon" href="/usr/images/preferences/1675334566.ico" type="image/x-icon" /> 56<link rel="shortcut icon" href="/usr/images/preferences/1675334566.ico" type="image/x-icon" /> 57 58<meta name="application-name" content="Galerie Thomas Schulte"/> 59<meta name="msapplication-TileColor" content="#ffffff"/> 60 61 <link rel="alternate" hreflang="en" href="https://www.galeriethomasschulte.com/store/basket/" /> 62<link rel="alternate" hreflang="cn" href="https://www.galeriethomasschulte.com/cn/store/basket/" /> 63 64 <link rel="stylesheet" media="print" href="/lib/g/2.0/styles/print.css"> 65 <link rel="stylesheet" media="print" href="/styles/print.css"> 66 67
67<script src="/lib/js/datadog-logs/datadog-logs.js" type="text/javascript"></script>
vendor: 1 bytes, line 67
67
68<script> 69try { 70 function checkStatisticsCookiePreference() { 71 // Get the cookie_preferences item from localStorage 72 const cookiePreferences = localStorage.getItem('cookie_preferences'); 73 74 // Check if the item exists 75 if (!cookiePreferences) { 76 console.log('No cookie_preferences found in localStorage'); 77 return false; 78 } 79 80 // Parse the JSON string 81 const preferences = JSON.parse(cookiePreferences); 82 83 // Check if statistics is set to true 84 const statisticsEnabled = preferences?.statistics === true; 85 86 console.debug('Statistics enabled:', statisticsEnabled); 87 return statisticsEnabled; 88 } 89 90 // Usage 91 const hasStatistics = checkStatisticsCookiePreference(); 92 93 if (hasStatistics) { 94 // --- Check for artlogic_id cookie --- 95 const artlogicIdSet = document.cookie 96 .split('; ') 97 .some(cookie => cookie.startsWith('artlogic_id=')); 98 99 console.debug('artlogic_id cookie set:', artlogicIdSet); 100 101 if (artlogicIdSet) { 102 window.DD_LOGS && window.DD_LOGS.init({ 103 // TODO add proxy? 104 clientToken: 'pub0866d56abaa16869f0d9bb4a3c7da950', 105 site: 'datadoghq.eu', 106 forwardConsoleLogs: ["error"], 107 forwardErrorsToLogs: true, 108 service: 'artlogiccms', 109 // version: '1.3.4', // TODO implement versioning in future. 110 sessionSampleRate: 100, 111 trackSessionAcrossSubdomains: true 112 }); 113 114 window.DD_LOGS && window.DD_LOGS.setGlobalContextProperty('site', 'galeriethomasschulte'.toLowerCase()) 115 116 window.DD_LOGS && window.DD_LOGS.setGlobalContextProperty('hostname', 'web-eu-021'.toLowerCase()) 117 118 // report any missing JS files 119 window.addEventListener('error', function(event) { 120 // Filter out standard JS runtime execution errors 121 if (event.target && event.target.tagName === 'SCRIPT') { 122 window.DD_LOGS && window.DD_LOGS.logger.error( 123 'A script failed to load: ' + (event.target?.src || event.target?.href), 124 {'script': (event.target?.src || event.target?.href)} 125 ) 126 } 127 }, true); // The 'true' flag activates the capturing phase 128 } 129 } 130} catch (error) { 131 console.error(error); 132} 133</script>
133 134 135 136 137
137<script> 138 (window.Promise && window.Array.prototype.find) || document.write('
138<script src="/lib/js/polyfill/polyfill_es6.min.js"><\/script>'); 139 </script>
139 140 141
141<script src="https://js.stripe.com/v3/" async></script>
141 142 143 144 <link data-context="helper" rel="stylesheet" type="text/css" href="/lib/webfonts/font-awesome/font-awesome-4.6.3/css/font-awesome.min.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 145 <link data-context="helper" rel="stylesheet" type="text/css" href="/lib/archimedes/styles/archimedes-frontend-core.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 146 <link data-context="helper" rel="stylesheet" type="text/css" href="/lib/archimedes/styles/accessibility.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 147 <link data-context="helper" rel="stylesheet" type="text/css" href="/lib/jquery/3.7.1/plugins/jquery.archimedes-frontend-core-plugins-0.1.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 148 <link data-context="helper" rel="stylesheet" type="text/css" href="/lib/jquery/3.7.1/plugins/fancybox-2.1.3/jquery.fancybox.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 149 <link data-context="helper" rel="stylesheet" type="text/css" href="/lib/jquery/3.7.1/plugins/fancybox-2.1.3/jquery.fancybox.artlogic.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 150 <link data-context="helper" rel="stylesheet" type="text/css" href="/lib/jquery/3.7.1/plugins/slick-1.8.1/slick.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 151 <link data-context="helper" rel="stylesheet" type="text/css" href="/lib/jquery/plugins/roomview/1.0/jquery.roomview.1.0.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 152 <link data-context="helper" rel="stylesheet" type="text/css" href="/lib/jquery/plugins/pageload/1.1/jquery.pageload.1.1.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 153 <link data-context="helper" rel="stylesheet" type="text/css" href="/lib/jquery/plugins/augmented_reality/1.0/jquery.augmented_reality.1.0.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 154 <link data-context="helper" rel="stylesheet" type="text/css" href="/lib/g/themes/boilerplate/2.0/styles/theme_vars.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 155 <link data-context="helper" rel="stylesheet" type="text/css" href="/core/dynamic_base.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 156 <link data-context="helper" rel="stylesheet" type="text/css" href="/core/dynamic_main.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 157 <link data-context="helper" rel="stylesheet" type="text/css" href="/core/user_custom.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 158 <link data-context="helper" rel="stylesheet" type="text/css" href="/core/dynamic_responsive.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 159 <link data-context="helper" rel="stylesheet" type="text/css" href="/lib/webfonts/artlogic-site-icons/artlogic-site-icons-1.0/artlogic-site-icons.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 160 <link data-context="helper" rel="stylesheet" type="text/css" href="/lib/jquery/plugins/plyr/3.5.10/plyr.css?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"/> 161<!-- add crtical css to improve performance --> 162
162<script>window.ARTLOGIC_ASSET_SUFFIX="_ver_c6060632afvd27b280g2a0c163abd9c387e11f3ea239c6f26d8";</script>
162 163
163<script data-context="helper" src="/lib/g/2.0/scripts/import_helpers.js"></script>
163 164
164<script data-context="helper" src="/lib/jquery/3.7.1/jquery-3.7.1.min.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
164 165
165<script data-context="helper" defer src="/lib/g/2.0/scripts/webpack_import_helpers.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
165 166
166<script data-context="helper" defer src="/lib/jquery/3.7.1/plugins/jquery.compat.selector.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
166 167
167<script data-context="helper" defer src="/lib/jquery/1.12.4/plugins/jquery.browser.min.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
167 168
168<script data-context="helper" defer src="/lib/jquery/1.12.4/plugins/jquery.easing.min.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
168 169
169<script data-context="helper" defer src="/lib/jquery/1.12.4/plugins/jquery.archimedes-frontend-core-plugins-0.1.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
169 170
170<script data-context="helper" defer src="/lib/jquery/1.12.4/plugins/jquery.fitvids.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
170 171
171<script data-context="helper" defer src="/core/dynamic.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
171 172
172<script data-context="helper" defer src="/lib/archimedes/scripts/archimedes-frontend-core.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
172 173
173<script data-context="helper" defer src="/lib/archimedes/scripts/archimedes-frontend-modules.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
173 174
174<script data-context="helper" type="module" traceurOptions="--async-functions" src="/lib/g/2.0/scripts/galleries_js_loader__mjs.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
174 175
175<script data-context="helper" defer src="/lib/g/2.0/scripts/feature_panels.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
175 176
176<script data-context="helper" defer src="/lib/g/themes/boilerplate/2.0/scripts/script.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
176 177
177<script data-context="helper" defer src="/lib/archimedes/scripts/shop.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
177 178
178<script data-context="helper" defer src="/lib/archimedes/scripts/recaptcha.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
178 179
179<script data-context="helper" defer src="/scripts/splide/splide.min.js?c=6060632af&v=d27b280&g=2a0c163abd9c387e11f3ea239c6f26d8"></script>
179 180 181 182 183 184 185
185<script> 186 function get_cookie_preference(category) { 187 result = false; 188 try { 189 var cookie_preferences = localStorage.getItem('cookie_preferences') || ""; 190 if (cookie_preferences) { 191 cookie_preferences = JSON.parse(cookie_preferences); 192 if (cookie_preferences.date) { 193 var expires_on = new Date(cookie_preferences.date); 194 expires_on.setDate(expires_on.getDate() + 365); 195 console.log('cookie preferences expire on', expires_on.toISOString()); 196 var valid = expires_on > new Date(); 197 if (valid && cookie_preferences.hasOwnProperty(category) && cookie_preferences[category]) { 198 result = true; 199 } 200 } 201 } 202 } 203 catch(e) { 204 console.warn('get_cookie_preference() failed'); 205 return result; 206 } 207 return result; 208 } 209 210 window.google_analytics_init = function(page){ 211 var collectConsent = true; 212 var useConsentMode = false; 213 var analyticsProperties = ['UA-79617111-1', 'G-YEBEY738RW']; 214 var analyticsCookieType = 'statistics'; 215 var disableGa = false; 216 var sendToArtlogic = true; 217 var artlogicProperties = { 218 'UA': 'UA-157296318-1', 219 'GA': 'G-GLQ6WNJKR5', 220 }; 221 222 analyticsProperties = analyticsProperties.concat(Object.values(artlogicProperties)); 223 224 var uaAnalyticsProperties = analyticsProperties.filter((p) => p.startsWith('UA-')); 225 var ga4AnalyticsProperties = analyticsProperties.filter((p) => p.startsWith('G-')).concat(analyticsProperties.filter((p) => p.startsWith('AW-'))); 226 227 if (collectConsent) { 228 disableGa = !get_cookie_preference(analyticsCookieType); 229 230 for (var i=0; i < analyticsProperties.length; i++){ 231 var key = 'ga-disable-' + analyticsProperties[i]; 232 233 window[key] = disableGa; 234 } 235 236 if (disableGa) { 237 if (document.cookie.length) { 238 var cookieList = document.cookie.split(/; */); 239 240 for (var i=0; i < cookieList.length; i++) { 241 var splitCookie = cookieList[i].split('='); //this.split('='); 242 243 if (splitCookie[0].indexOf('_ga') == 0 || splitCookie[0].indexOf('_gid') == 0 || splitCookie[0].indexOf('__utm') == 0) { 244 //h.deleteCookie(splitCookie[0]); 245 var domain = location.hostname; 246 var cookie_name = splitCookie[0]; 247 document.cookie = 248 cookie_name + "=" + ";path=/;domain="+domain+";expires=Thu, 01 Jan 1970 00:00:01 GMT"; 249 // now delete the version without a subdomain 250 domain = domain.split('.'); 251 domain.shift(); 252 domain = domain.join('.'); 253 document.cookie = 254 cookie_name + "=" + ";path=/;domain="+domain+";expires=Thu, 01 Jan 1970 00:00:01 GMT"; 255 } 256 } 257 } 258 } 259 } 260 261 if (uaAnalyticsProperties.length) { 262 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 263 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 264 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 265 })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 266 267 268 if (!disableGa) { 269 var anonymizeIps = false; 270 271 for (var i=0; i < uaAnalyticsProperties.length; i++) { 272 var propertyKey = ''; 273 274 if (i > 0) { 275 propertyKey = 'tracker' + String(i + 1); 276 } 277 278 var createArgs = [ 279 'create', 280 uaAnalyticsProperties[i], 281 'auto', 282 ]; 283 284 if (propertyKey) { 285 createArgs.push({'name': propertyKey}); 286 } 287 288 ga.apply(null, createArgs); 289 290 if (anonymizeIps) { 291 ga('set', 'anonymizeIp', true); 292 } 293 294 var pageViewArgs = [ 295 propertyKey ? propertyKey + '.send' : 'send', 296 'pageview' 297 ] 298 299 if (page) { 300 pageViewArgs.push(page) 301 } 302 303 ga.apply(null, pageViewArgs); 304 } 305 306 if (sendToArtlogic) { 307 ga('create', 'UA-157296318-1', 'auto', {'name': 'artlogic_tracker'}); 308 309 if (anonymizeIps) { 310 ga('set', 'anonymizeIp', true); 311 } 312 313 var pageViewArgs = [ 314 'artlogic_tracker.send', 315 'pageview' 316 ] 317 318 if (page) { 319 pageViewArgs.push(page) 320 } 321 322 ga.apply(null, pageViewArgs); 323 } 324 } 325 } 326 327 if (ga4AnalyticsProperties.length) { 328 if (!disableGa || useConsentMode) { 329 (function(d, script) { 330 script = d.createElement('script'); 331 script.type = 'text/javascript'; 332 script.async = true; 333 script.src = 'https://www.googletagmanager.com/gtag/js?i
333d=' + ga4AnalyticsProperties[0]; 334 d.getElementsByTagName('head')[0].appendChild(script); 335 }(document)); 336 337 window.dataLayer = window.dataLayer || []; 338 window.gtag = function (){dataLayer.push(arguments);} 339 window.gtag('js', new Date()); 340 341 if (useConsentMode) { 342 gtag('consent', 'default', { 343 'ad_storage': 'denied', 344 'analytics_storage': 'denied', 345 'functionality_storage': 'denied', 346 'personalization_storage': 'denied', 347 'security': 'denied', 348 }); 349 350 if (disableGa) { 351 // If this has previously been granted, it will need set back to denied (ie on cookie change) 352 gtag('consent', 'update', { 353 'analytics_storage': 'denied', 354 }); 355 } else { 356 gtag('consent', 'update', { 357 'analytics_storage': 'granted', 358 }); 359 } 360 } 361 362 for (var i=0; i < ga4AnalyticsProperties.length; i++) { 363 window.gtag('config', ga4AnalyticsProperties[i]); 364 } 365 366 } 367 } 368 } 369 370 var waitForPageLoad = true; 371 372 if (waitForPageLoad) { 373 window.addEventListener('load', function() { 374 window.google_analytics_init(); 375 window.archimedes.archimedes_core.analytics.init(); 376 }); 377 } else { 378 window.google_analytics_init(); 379 } 380 </script>
380 381 382 383 384 385 </head> 386 387 388 389 <body class="section-store page-store site-responsive responsive-top-size-1023 responsive-nav-slide-nav responsive-nav-side-position-fullscreen responsive-layout-forced-lists responsive-layout-forced-image-lists responsive-layout-forced-tile-lists analytics-track-all-links site-lib-version-2-0 scroll_sub_nav_enabled responsive_src_image_sizing hero_heading_title_position_overlay artworks_detail_ar_enabled page-param-basket page-param-type-store_type layout-fixed-header site-type-template pageload-ajax-navigation-active layout-animation-enabled layout-lazyload-enabled" data-viewport-width="1024" data-site-name="galeriethomasschulte" data-connected-db-name="galeriethomasschulte" data-pathname="/store/basket/" 390> 391
391<script>document.getElementsByTagName('body')[0].className+=' browser-js-enabled';</script>
391 392 393 394 395 396 397 398 399 400 401 402 403 <div id="responsive_slide_nav_content_wrapper"> 404 <div class="background_grid_wrapper"> 405 <div class="background_grid background_grid_arches"> 406 <div class="background_arch1 background_lines"> 407 <svg class="svg" viewBox="0 0 418 1078" xmlns="http://www.w3.org/2000/svg"> 408 <path class="path" 409 d="M1 1078.52698V209.546959C1.01095 94.589375 94.205838 1.401241 209.16598 1.401241c114.960317 0 208.155313 93.188418 208.165979 208.146245V878.52698" 410 stroke="#222" fill="none" fill-rule="evenodd" /> 411 </svg> 412 </div> 413 <div class="background_arch2 background_lines"> 414 <svg class="svg" viewBox="0 0 418 1078" xmlns="http://www.w3.org/2000/svg"> 415 <path class="path path-2" 416 d="M1 1078.52698V209.546959C1.01095 94.589375 94.205838 1.401241 209.16598 1.401241c114.960317 0 208.155313 93.188418 208.165979 208.146245V878.52698" 417 stroke="#222" fill="none" fill-rule="evenodd" /> 418 </svg> 419 </div> 420 <div class="background_arch3 background_lines"> 421 <svg class="svg" viewBox="0 0 418 1078" xmlns="http://www.w3.org/2000/svg"> 422 <path class="path path-3" 423 d="M1 1078.52698V209.546959C1.01095 94.589375 94.205838 1.401241 209.16598 1.401241c114.960317 0 208.155313 93.188418 208.165979 208.146245V878.52698" 424 stroke="#222" fill="none" fill-rule="evenodd" /> 425 </svg> 426 </div> 427 </div> 428 <div class="background_grid background_grid_bg"> 429 <div class="background_lines background_arch1"></div> 430 <div class="background_lines background_arch2"></div> 431 <div class="background_lines background_arch3"></div> 432 </div> 433</div> 434 435 <div id="container"> 436 437 438 439 440 441 <div class="header-fixed-wrapper"> 442 <header id="header" class="clearwithin header_fixed header_hide_border header_layout_center"> 443 <div class="inner clearwithin"> 444 445 446 447 448<div id="logo" class=" user-custom-logo-image"><a href="/">Galerie Thomas Schulte</a></div> 449 450 451 452 <div id="skiplink-container"> 453 <div> 454 <a href="#main_content" class="skiplink">Skip to main content</a> 455 </div> 456 </div> 457 458 459 <div class="header-ui-wrapper"> 460 461 <div id="responsive_slide_nav_wrapper" class="mobile_menu_align_center" data-nav-items-animation-delay> 462 <div id="responsive_slide_nav_wrapper_inner" data-responsive-top-size=1023> 463 464 <nav id="top_nav" aria-label="Main site" class="navigation noprint clearwithin"> 465 466<div id="top_nav_reveal" class="hidden"><ul><li><a href="#" role="button" aria-label="Close">Menu</a></li></ul></div> 467 468 <ul class="topnav"> 469 <li class="topnav-filepath-artists topnav-label-artists topnav-id-11"><a href="/artists/" aria-label="Artists">Artists</a></li> 470 <li class="topnav-filepath-exhibitions topnav-label-exhibitions topnav-id-13"><a href="/exhibitions/" aria-label="Exhibitions">Exhibitions</a></li> 471 <li class="topnav-filepath-art-fairs topnav-label-art-fairs topnav-id-23"><a href="/art-fairs/" aria-label="Art Fairs">Art Fairs</a></li> 472 <li class="topnav-filepath-news topnav-label-news topnav-id-15"><a href="/news/" aria-label="News">News</a></li> 473 <li class="topnav-filepath-video topnav-label-channel topnav-id-19"><a href="/video/" aria-label="Channel">Channel</a></li> 474 <li class="topnav-filepath-about topnav-label-about topnav-id-22 last"><a href="/about/" aria-label="About">About</a></li> 475 </ul> 476 477 478 479 480 481 <div id="topnav_translations" class="navigation noprint clearwithin"> 482 <ul> 483 484 <li id="lang_nav_en" class="lang_nav_en active" data-language="en"><a aria-label="Translate site to EN (English)" href="/store/basket/" class="no_proxy_dir_rewrite">EN</a></li> 485
486 <li id="lang_nav_cn" class="lang_nav_cn " data-language="en"><a aria-label="Translate site to ç®ä½ (Chinese (Simplified))" href="/cn/store/basket/" class="no_proxy_dir_rewrite">ç®ä½</a></li> 487 </ul> 488 </div> 489 490 491 492 <div id="topnav_search" class="header_quick_search noprint"> 493 <form method="get" action="/search/" id="topnav_search_form"> 494 <input id="topnav_search_field" type="text" class="header_quicksearch_field inputField" aria-label="Search" data-default-value="Search" value="" name="search" /> 495 <a href="javascript:void(0)" id="topnav_search_btn" class="header_quicksearch_btn link" aria-label="Submit search" role="button"><i class="quicksearch-icon"></i></a> 496 <input type="submit" class="nojsSubmit" aria-label="Submit search" value="Go" style="display: none;" /> 497 </form> 498 </div> 499 </nav> 500 501 </div> 502 </div> 503 504 505 <div class="header-icons-wrapper active cart-icon-active"> 506 507 508 <div id="header_quick_search" class="header_quick_search noprint header_quick_search_reveal"> 509 <form method="get" action="/search/" id="header_quicksearch_form"> 510 <input id="header_quicksearch_field" type="text" class="header_quicksearch_field inputField" aria-label="Submit" data-default-value="Search" value="" name="search" placeholder="Search" /> 511 <a href="javascript:void(0)" id="header_quicksearch_btn" class="header_quicksearch_btn link" aria-label="Submit search"><i class="quicksearch-icon"></i></a> 512 <input type="submit" class="nojsSubmit" value="Go" aria-label="Submit search" style="display: none;" /> 513 </form> 514 </div> 515 516 517 518 519 520<!--excludeindexstart--> 521<div id="store_cart_widget" class="hide_when_empty"> 522 <div class="store_cart_widget_inner"> 523 <div id="scw_heading"><a href="/store/basket/" class="scw_checkout_link">Cart</a></div> 524 <div id="scw_items"> 525 <a href="/store/basket/" aria-label="Your store basket is empty" data-currency="€"> 526 <span class="scw_total_items"><span class="scw_total_count">0</span><span class="scw_total_items_text"> items</span></span> 527 528 529 <span class="scw_total_price"> 530 <span class="scw_total_price_currency widget_currency">€</span> 531 <span class="scw_total_price_amount widget_total_price" 532 data-cart_include_vat_in_price="0" 533 data-total_price_without_vat_in_base_currency="0" 534 data-total_price_with_vat_in_base_currency="0" 535 data-conversion_rate='{"EUR": {"conversion_rate": 1.0, "name": "€", "stripe_code": "eur"}}' 536 data-count="0"> 537 </span> 538 </span> 539 540 541 </a> 542 </div> 543 <div id="scw_checkout"> 544 <div class="scw_checkout_button"><a href="/store/basket/" class="scw_checkout_link">Checkout</a></div> 545 </div> 546 <div id="scw_popup" class="hidden scw_popup_always_show"> 547 <div id="scw_popup_inner"> 548 <h3>Item added to cart</h3> 549 <div id="scw_popup_buttons_container"> 550 <div class="button"><a href="/store/basket/">View cart & checkout</a></div> 551 <div id="scw_popup_close" class="link"><a href="#">Continue shopping</a></div> 552 </div> 553 <div class="clear"></div> 554 </div> 555 </div> 556 557 </div> 558</div> 559<!--excludeindexend--> 560 561 562 563 <div id="slide_nav_reveal" tabindex="0" role="button">Menu</div> 564 </div> 565 566 567 568 569 570 <div id="translations_nav" class="navigation noprint clearwithin"> 571 <ul> 572 573 <li id="lang_nav_en" class="lang_nav_en active" data-language="en"><a aria-label="Translate site to EN (English)" href="/store/basket/" class="no_proxy_dir_rewrite">EN</a></li> 574
575 <li id="lang_nav_cn" class="lang_nav_cn " data-language="en"><a aria-label="Translate site to ç®ä½ (Chinese (Simplified))" href="/cn/store/basket/" class="no_proxy_dir_rewrite">ç®ä½</a></li> 576 </ul> 577 </div> 578 579 580 581 582 583 </div> 584 </div> 585 586 587 588 589 </header> 590 </div> 591 592 593 594 595 596 <div id="main_content" role="main" class="clearwithin"> 597 <!--contentstart--> 598 599 600 601 602 603 604 605 606 607 608 609 610 611 <div class="subsection-store-basket"> 612 <h1 class="hidden">Store</h1> 613 <div id="content_module"> 614 615 616 617 618 <div class="currency_store_select_wrapper"> 619 <div class="currency_store_selected link"> 620 <span>Currency: </span> 621 </div> 622 623 <select aria-label="Currency" class="currency_store_select link" data-cart_currency="EUR"> 624 625 <option value="EUR" data-conversion_rate="1.0" data-currency_name="€" selected>€ EUR</option> 626 </select> 627 <i class="fa fa-caret-down link" aria-hidden="true"></i> 628 </div> 629 630 <h2>Shopping cart</h2> 631 632 633 634 635<div id="sc_contents_container"> 636 637 638 <p>Your shopping cart is empty.</p> 639 640 641 642 <div class="clear"></div> 643</div> 644 645<!--artlogiccms-no-search--> 646 647<div id="basket_footer"> 648 <div class="divider"></div> 649 <div id="store_payment_logos"> 650 <ul> 651 <li class="wp_stripe">Powered by Stripe</li> 652 <li class="wp_visa">visa</li> 653 <li class="wp_mastercard">mastercard</li> 654 <li class="wp_amex">amex</li> 655 <li class="wp_apple-pay">Apple Pay</li> 656 </ul> 657 </div> 658 <div class="divider inner"></div> 659 660 661 662</div> 663 </div> 664 <div id="sidebar"> 665 666 667 668 669<!--artlogiccms-no-search--> 670 </div> 671</div> 672 673 674 675 676 677 678 <!--contentend--> 679 </div> 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711<div id="footer" role="contentinfo" class=" advanced_footer"> 712 <div class="inner"> 713 <div class="inner_grid"> 714 <div class="footer_arch footer_arch1"> 715 <svg width="428" height="208" viewBox="0 0 428 208" fill="none" xmlns="http://www.w3.org/2000/svg"> 716 <mask id="path-1-inside-1_2364_10802" fill="white"> 717 <path d="M0 207.005C0 92.6792 95.8111 0 214 0C332.189 0 428 92.6792 428 207.005"/> 718 </mask> 719 <path d="M1 207.005C1 93.2626 96.3318 1 214 1V-1C95.2904 -1 -1 92.0959 -1 207.005H1ZM214 1C331.668 1 427 93.2626 427 207.005H429C429 92.0959 332.71 -1 214 -1V1Z" fill="#E8E8E8" mask="url(#path-1-inside-1_2364_10802)"/> 720 </svg> 721 722 723 </div> 724 <div class="footer_arch footer_arch2"> 725 <svg width="428" height="208" viewBox="0 0 428 208" fill="none" xmlns="http://www.w3.org/2000/svg"> 726 <path d="M1 207.005C1 93.2626 96.3318 1 214 1V-1C95.2904 -1 -1 92.0959 -1 207.005H1ZM214 1C331.668 1 427 93.2626 427 207.005H429C429 92.0959 332.71 -1 214 -1V1Z" fill="#E8E8E8" mask="url(#path-1-inside-1_2364_10802)"/> 727 </svg> 728 </div> 729 <div class="footer_arch footer_arch3"> 730 <svg width="428" height="208" viewBox="0 0 428 208" fill="none" xmlns="http://www.w3.org/2000/svg"> 731 <path d="M1 207.005C1 93.2626 96.3318 1 214 1V-1C95.2904 -1 -1 92.0959 -1 207.005H1ZM214 1C331.668 1 427 93.2626 427 207.005H429C429 92.0959 332.71 -1 214 -1V1Z" fill="#E8E8E8" mask="url(#path-1-inside-1_2364_10802)"/> 732 </svg> 733 </div> 734 735 <div class="advanced_footer_item footer_logo"> 736 <div class"col1"> 737 <div class="logo"> 738 <a href="/"> 739 <span class="visually-hidden">Galerie Thomas Schulte</span> 740 <svg fill="none" height="76" viewBox="0 0 83 76" width="83" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m9.65255 19.3909v-9.64637h-4.37861v2.00227h2.00226v3.6979c0 1.0916-.66844 2.0636-2.06358 2.0636-1.45647 0-2.06358-.972-2.06358-2.0636v-11.26541c-.02851-.55554.17974-1.09714.57309-1.49049.39334-.39335.93495-.60159 1.49049-.57309 1.39208 0 1.99919.96893 1.99919 2.06358v2.18317h2.2445v-1.87654c0-2.66764-1.33382-4.48592-4.24369-4.48592-2.97119 0-4.547244 1.99919-4.547244 4.48592v10.67058c0 2.7872 1.576054 4.5472 4.182364 4.5472 1.39207 0 2.54498-.5458 3.1521-1.6374l.54579 1.3338zm51.77055-1.5821v1.7017l-.601-.0184c-1.8122 0-2.4254-.5458-2.4254-2.3027v-4.2928c0-1.1529-.6071-1.8796-1.6374-1.8796h-2.4254v8.3678h-2.4254v-19.105772h4.906c2.4837 0 3.8175 1.211172 3.8175 3.817482v2.85161c0 1.69563-.5428 2.72589-1.9992 3.09078 1.4503.3649 2.0636 1.576 2.0636 3.0325v4.0107c0 .5458.1809.7267.7267.7267zm-41.1767-17.520573 4.0751 19.096573h-2.4285l-.9199-4.3663h-4.1823l-.8494 4.3663h-2.2414l4.121-19.096573zm-3.0325 12.608373h3.4557l-1.6957-8.18378zm65.2405 6.4882v-2.2445h-5.4671v-6.6691h5.4549v-2.05742h-5.4549v-6.00064h5.4549v-2.121847h-7.8803v19.096607zm-13.516-19.093507v19.093507l-2.545.0031v-19.096607zm-10.6092 6.908257c0 1.2265-.6684 1.87961-1.76 1.87961h-2.2414v-6.66909h2.4867c.9689 0 1.5147.61325 1.5147 1.63738zm-11.3942 12.19135v-2.2506h-5.5928v-6.6691h5.5775v-2.05742h-5.5775v-6.00064h5.5775v-2.121847h-7.8802v19.096607zm-11.4585-2.2506v2.2506l-7.2701-.003v-19.096607h2.3641v16.849007zm43.648 19.9398c2.1832 2.0115 3.333 3.7684 3.333 6.1325h-.0061c0 3.0203-2.1219 4.5994-4.4829 4.5994-2.6063 0-4.3663-1.806-4.3663-4.2928v-1.6956h2.3058v1.5147c0 1.5761.788 2.4254 2.0636 2.4254 1.4565 0 2.1832-.8493 2.1832-2.1218 0-1.8183-.7298-3.0908-2.729-4.7895-1.76-1.576-3.5783-3.7592-3.5783-6.2459 0-2.545 1.4565-4.5473 4.2437-4.5473 2.545 0 4.1823 1.806 4.1823 4.2928v1.8183h-2.2383v-1.5148c0-1.4564-.6071-2.4867-2.0605-2.4867-1.2051 0-1.8183.788-1.8183 1.9409 0 1.8796.6654 2.9712 2.9681 4.9704zm-12.9856 3.8942h-3.0325l1.5761-8.1839zm-.1839-12.5717 3.8205 18.9954-2.4867-.0214-.788-4.2437h-3.8206l-.7267 4.2437h-2.2445l3.7593-18.974zm-10.4253 18.9954v-18.9954h-3.7
740592l-2.1218 11.8204-.6133 3.5139-.6132-3.5139-2.3518-11.8204h-3.7593v18.974h2.1219v-16.2941l1.1529 5.2924 2.0636 11.0385h2.545l2.0635-11.0385 1.153-5.277v16.3063zm-22.9171-1.7446c1.4534 0 2.2414-.9077 2.2414-2.2415v-10.9342c.0332-.604-.1923-1.1936-.62-1.6214-.4278-.4277-1.0174-.6532-1.6214-.62-1.3951 0-2.0636 1.0149-2.0636 2.2414v10.9342c0 1.3216.6715 2.2415 2.0636 2.2415zm4.5472-2.4837v-10.4252c0-2.6094-1.576-4.6699-4.5472-4.6699-2.8485 0-4.4246 2.0635-4.4246 4.6699v10.4252c0 2.729 1.5761 4.6668 4.4246 4.6668 2.9712 0 4.5472-1.9409 4.5472-4.6668zm-14.1231-14.7671v19.0077l-2.3641-.0215v-8.3033h-4.7894v8.2911h-2.3641v-18.974h2.3641v8.423h4.7894v-8.423zm-13.88395 2.2783v-2.2629h-9.15275v2.2414h3.47099v16.7294h2.30582v-16.7294zm73.28335 44.9419v.0368l.0061-.0368zm0 0v-2.1463h-5.0686v-6.6906h5.09v-2.1218h-5.09v-5.9424h5.09v-2.2414h-7.4111v19.1425zm-11.152-16.8275v-2.3058h-8.7848v2.3058h3.2717v16.8644h2.3641v-16.8644zm-9.6403 16.8275v.0368l.0062-.0368zm0 0v-2.1463h-4.5411v-16.9962h-2.3058v19.1425zm-11.9369-3.9861v-15.1564h-2.4254v15.1564c0 1.4565-.6132 2.1832-1.9992 2.1832-1.3859 0-2.0635-.7267-2.0635-2.1832v-15.1564h-2.3641v15.1564c0 2.729 1.76 4.3633 4.3663 4.3633 2.6676 0 4.4859-1.6343 4.4859-4.3633zm-13.8195-15.1534v19.1549h-2.3059v-8.4874h-4.4828v8.4874h-2.5481v-19.1549h2.5481v8.5457h4.4828v-8.5457zm-13.7614 15.0768v-2.5297h-2.1218v2.6063c0 1.2725-.7267 2.1832-2.1218 2.1832-1.4565 0-2.1832-.9689-2.1832-2.1218v-11.2133c0-1.1529.7298-2.0636 2.1832-2.0636 1.392 0 2.1218.8494 2.1218 2.1832v2.6063h2.1218v-2.6125c0-2.4867-1.3951-4.4276-4.2927-4.4276s-4.4829 2.1831-4.4829 4.5994v10.6092c0 2.548 1.5761 4.5993 4.4829 4.5993s4.2927-1.9317 4.2927-4.4184zm-16.30626-6.3778c2.24142 2.0728 3.39433 3.891 3.39433 6.1325l.01227-.0062c0 3.1552-2.12185 4.6669-4.42766 4.6669-2.7259 0-4.482857-1.7447-4.482857-4.2928v-1.6956h2.364077v1.4534c0 1.5791.78496 2.548 2.12184 2.548 1.33689 0 2.06359-.9106 2.06359-2.2445 0-1.7538-.7267-2.9681-2.60631-4.7864-1.88268-1.5791-3.700963-3.8205-3.700963-6.2459 0-2.6094 1.441133-4.5473 4.292743-4.5473 2.54499 0 4.18236 1.8061 4.18236 4.2928v1.8183h-2.24142v-1.5761c0-1.3951-.66844-2.364-2.00226-2.364-1.26636 0-1.87961.6653-1.87961 1.9409 0 1.7508.66844 2.8332 2.90987 4.906z" fill="#FFFFFF" fill-rule="evenodd"/></svg> 741 </a> 742 </div> 743 </div> 744 <div class="col2"> 745 <div id="terms_conditions_url"><a href="/legal-notice/" data-original-url="/imprint/">Legal Notice</a></div> 746 <div class="privacy-policy"><a href="/privacy-policy/">Privacy Policy</a></div> 747 <div class="accessibility-statement"> 748 <a href="/accessibility-statement/">Accessibility Statement</a> 749 </div> 750 751 752 <div id="social_links" class="clearwithin"> 753 <div id="instagram" class="social_links_item"><a href="https://www.instagram.com/galeriethomasschulte" class=""><span class="social_media_icon instagram"></span>Instagram<span class="screen-reader-only">, opens in a new tab.</span></a></div><div id="mailinglist" class="social_links_item"><a href="/mailing-list/" class=" mailinglist_signup_popup_link"><span class="social_media_icon mailinglist"></span>Join the mailing list</a></div><div id="googlemap" class="social_links_item"><a href="https://goo.gl/maps/aXcjqJWgAMP2G8QX6" class="website_map_popup" data-latlng="52.510286,13.392063" data-title="Galerie Thomas Schulte" data-zoom="16"><span class="social_media_icon googlemap"></span>View on Google Maps</a></div><div id="facebook" class="social_links_item"><a href="https://de-de.facebook.com/galeriethomasschulte/" class=""><span class="social_media_icon facebook"></span>Facebook<span class="screen-reader-only">, opens in a new tab.</span></a></div> 754 </div> 755 756 </div> 757 </div> 758 <div class="advanced_footer_item clearwithin footer_address"> 759 <div id="contact_info"> 760 <p>Galerie Thomas Schulte GmbH<br />Charlottenstrasse 24<br />10117 Berlin, Germany</p> 761 <p> </p> 762 <p>Phone: 0049 (0)30 20 60 89 90</p> 763 <p>Fax: 0049 (0)30 20 60 89 91 0 </p> 764 <p><a href="mailto:[email protected]" target="_blank" aria-label="Email the gallery: [email protected]">[email protected]</a></p> 765 <p> </p> 766 <p>Opening Hours:</p> 767 <p>Tuesday - Saturday</p> 768 <p>12pm - 6pm</p> 769 </div> 770 </div> 771 <div class="advanced_footer_item footer_contact"> 772 <div>Galerie Thomas Schulte Potsdamer Strasse</div> 773 <div>Mercartor Höfe</div> 774 <div>Potsdamer Strasse 81B, 2nd floor</div> 775 <div>10785 Berlin, Germany</div> 776 <div> </div> 777 <div>Phone: 0049 (0)30 20 62 75 50</div> 778 <div> 779 <p><a href="mailto:[email protected]" target="_blank" aria-label="Email the gallery: [email protected]">[email protected]</a></p> 780 <p> </p> 781 Opening Hours:</div> 782 <div>Wednesday - Saturday</div> 783 <div>12pm - 6pm</div> 784 </div> 785 786 </div> 787 <div class="clear"></div> 788 789 <div class="copyright"> 790 791 <div class="small-links-container">
792 <span>Galerie Thomas Schulte will process the personal data you have supplied in accordance with our <a href="/privacy-policy/">Privacy Policy</a>.</span> 793 <div class="cookie_notification_preferences"><a href="javascript:void(0)" role="button" class="link-no-ajax">Manage cookies</a></div> 794 </div> 795 796 <div id="copyright" class="noprint"> 797 <div class="copyright-text"> 798 Copyright © 2026 Galerie Thomas Schulte 799 </div> 800 801 802 </div> 803 804 </div> 805 806 <div class="clear"></div> 807 </div> 808</div> 809 <div class="clear"></div> 810 811 <div id="cookie_notification" role="region" aria-label="Cookie banner" data-mode="consent" data-cookie-notification-settings=""> 812 <div class="inner"> 813 <div id="cookie_notification_message" class="prose"> 814 <p><strong>This website uses cookies</strong><br>This site uses cookies to help make it more useful to you. Please contact us to find out more about our Cookie Policy.</p> 815 </div> 816 <div id="cookie_notification_preferences" class="link"><a href="javascript:;" role="button">Manage cookies</a></div> 817 <div id="cookie_notification_reject" class="button"><a href="javascript:;" role="button">Reject non essential</a></div> 818 <div id="cookie_notification_accept" class="button"><a href="javascript:;" role="button">Accept</a></div> 819 820 </div> 821</div> 822 <div id="manage_cookie_preferences_popup_container"> 823 <div id="manage_cookie_preferences_popup_overlay"></div> 824 <div id="manage_cookie_preferences_popup_inner"> 825 <div id="manage_cookie_preferences_popup_box" role="dialog" aria-modal="true" aria-label="Cookie preferences"> 826 <div id="manage_cookie_preferences_close_popup_link" class="close"> 827 <a href="javascript:;" role="button" aria-label="close"> 828 <svg width="20px" height="20px" viewBox="0 0 488 488" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true"> 829 <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> 830 <g id="close" fill="#5D5D5D" fill-rule="nonzero"> 831 <polygon id="Path" points="488 468 468 488 244 264 20 488 0 468 224 244 0 20 20 0 244 224 468 0 488 20 264 244"></polygon> 832 </g> 833 </g> 834 </svg> 835 </a> 836 </div> 837 <h2>Cookie preferences</h2> 838 <p>Check the boxes for the cookie categories you allow our site to use</p> 839 840 <div id="manage_cookie_preferences_form_wrapper"> 841 <div class="form form_style_simplified"> 842 843 <form id="cookie_preferences_form"> 844 <fieldset> 845 <legend class="visually-hidden">Cookie options</legend> 846 <div> 847 <label><input type="checkbox" name="essential" disabled checked value="1"> Strictly necessary</label> 848 <div class="note">Required for the website to function and cannot be disabled.</div> 849 </div> 850 <div> 851 <label><input type="checkbox" name="functionality" value="1"> Preferences and functionality</label> 852 <div class="note">Improve your experience on the website by storing choices you make about how
852it should function.</div> 853 </div> 854 <div> 855 <label><input type="checkbox" name="statistics" value="1"> Statistics</label> 856 <div class="note">Allow us to collect anonymous usage data in order to improve the experience on our website.</div> 857 </div> 858 <div> 859 <label><input type="checkbox" name="marketing" value="1"> Marketing</label> 860 <div class="note">Allow us to identify our visitors so that we can offer personalised, targeted marketing.</div> 861 </div> 862 </fieldset> 863 864 <div class="button"> 865 <a href="javascript:;" id="cookie_preferences_form_submit" role="button">Save preferences</a> 866 </div> 867 </form> 868 869 </div> 870 </div> 871 </div> 872 </div> 873 </div> 874 875 876 877 878 879 880 881 882 883 <div id="mailing_list_popup_container" class="" data-timeout="10" data-cookie-expiry="604800"> 884 <div id="mailing_list_popup_overlay"></div> 885 <div id="mailing_list_popup_inner"> 886 <div id="mailing_list_popup_box" role="dialog" aria-modal="true" aria-label="Mailing list popup"> 887 <div id="mailinglist_signup_close_popup_link" class="close"><a href="#" aria-label="Close" role="button" tabindex="0">Close</a></div> 888 <h2>Join our mailing list</h2> 889 <div class="description prose"> 890 <p class="cms_gray">By completing this form, you confirm that you would like to subscribe to Galerie Thomas Schulte’s email newsletter and receive weekly information about artists and upcoming events. Your email address will be used exclusively for the newsletter service. </p> 891 </div> 892 893 <div class="mailinglist-embed-code"> 894 <div id="mc_embed_shell"> 895 <link href="//cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"> 896 <style type="text/css"> 897 #mc_embed_signup { 898 background: #fff; 899 clear: left; 900 font-family: "Untitled Serif", sans-serif !important; 901 font-size: 15px; 902 font-weight: 400; 903 line-height: 1.8; 904 width: 300px; 905 } 906 907 #mc_embed_signup *, 908 #mc_embed_signup input, 909 #mc_embed_signup textarea, 910 #mc_embed_signup select, 911 #mc_embed_signup button, 912 #mc_embed_signup .button, 913 #mc_embed_signup label, 914 #mc_embed_signup p, 915 #mc_embed_signup a { 916 font-family: "Untitled Serif", sans-serif !important; 917 } 918 919 /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block. 920 We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */ 921</style><style type="text/css"> 922 #mc-embedded-subscribe-form input[type=checkbox]{display: inline; width: auto;margin-right: 10px;} 923#mergeRow-gdpr {margin-top: 20px;} 924#mergeRow-gdpr fieldset label {font-weight: normal;} 925#mc-embedded-subscribe-form .mc_fieldset{border:none;min-height: 0px;padding-bottom:0px;} 926</style> 927<div id="mc_embed_signup"> 928 <form action="https://galeriethomasschulte.us8.list-manage.com/subscribe/post?u=be668ee1f2abf30d8171e4c4e&id=40947a5760&v_id=32&f_id=00c6c2e1f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"> 929 <div id="mc_embed_signup_scroll"> 930 <div class="indicates-required"><span class="asterisk">*</span> indicates required</div> 931 <div class="mc-field-group"><label for="mce-EMAIL">Email Address <span class="asterisk">*</span></label><input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""></div><div class="mc-field-group">
931<label for="mce-FNAME">First Name </label><input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""></div><div class="mc-field-group"><label for="mce-LNAME">Last Name </label><input type="text" name="LNAME" class=" text" id="mce-LNAME" value=""></div><div id="mergeRow-gdpr" class="mergeRow gdpr-mergeRow content__gdprBlock mc-field-group"><div class="content__gdpr"><label>Marketing Permission</label><p>Please select all the ways you would like to hear from Galerie Thomas Schulte:</p><fieldset class="mc_fieldset gdprRequired mc-field-group" name="interestgroup_field"><label class="checkbox subfield" for="gdpr12"><input type="checkbox" id="gdpr_12" name="gdpr[12]" class="gdpr" value="Y"><span>Email</span></label></fieldset><p>You can unsubscribe at any time by clicking the link in the footer of our emails. 932For information about our privacy practices, please visit https://www.galeriethomasschulte.com/privacy-policy/.</p></div><div class="content__gdprLegal"><p>We use Mailchimp as our marketing platform. By clicking below to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. <a href="https://mailchimp.com/legal/terms">Learn more</a> about Mailchimp's privacy practices.</p></div></div> 933 <div id="mce-responses" class="clear"> 934 <div class="response" id="mce-error-response" style="display: none;"></div> 935 <div class="response" id="mce-success-response" style="display: none;"></div> 936 </div><div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_be668ee1f2abf30d8171e4c4e_40947a5760" tabindex="-1" value=""></div><div class="clear"><input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"></div> 937 </div> 938</form> 939</div>
940<script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"></script>
940<script type="text/javascript">(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';fnames[3]='MMERGE3';ftypes[3]='text';}(jQuery));var $mcj = jQuery.noConflict(true); 941 // SMS Phone Multi-Country Functionality 942 if(!window.MC) { 943 window.MC = {}; 944 } 945 window.MC.smsPhoneData = { 946 defaultCountryCode: 'DE', 947 programs: [], 948 smsProgramDataCountryNames: [] 949 }; 950 951 function getCountryUnicodeFlag(countryCode) { 952 return countryCode.toUpperCase().replace(/./g, (char) => String.fromCodePoint(char.charCodeAt(0) + 127397)) 953 }; 954 955 // HTML sanitization function to prevent XSS 956 function sanitizeHtml(str) { 957 if (typeof str !== 'string') return ''; 958 return str 959 .replace(/&/g, '&') 960 .replace(/</g, '<') 961 .replace(/>/g, '>') 962 .replace(/"/g, '"') 963 .replace(/'/g, ''') 964 .replace(/\//g, '/'); 965 } 966 967 // URL sanitization function to prevent javascript: and data: URLs 968 function sanitizeUrl(url) { 969 if (typeof url !== 'string') return ''; 970 const trimmedUrl = url.trim().toLowerCase(); 971 if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) { 972 return '#'; 973 } 974 return url; 975 } 976 977 const getBrowserLanguage = () => { 978 if (!window?.navigator?.language?.split('-')[1]) { 979 return window?.navigator?.language?.toUpperCase(); 980 } 981 return window?.navigator?.language?.split('-')[1]; 982 }; 983 984 985 function getDefaultCountryProgram(defaultCountryCode, smsProgramData) { 986 if (!smsProgramData || smsProgramData.length === 0) { 987 return null; 988 } 989 990 const browserLanguage = getBrowserLanguage(); 991 992 if (browserLanguage) { 993 const foundProgram = smsProgramData.find( 994 (program) => program?.countryCode === browserLanguage, 995 ); 996 if (foundProgram) { 997 return foundProgram; 998 } 999 } 1000 1001 if (defaultCountryCode) { 1002 const foundProgram = smsProgramData.find( 1003 (program) => program?.countryCode === defaultCountryCode, 1004 ); 1005 if (foundProgram) { 1006 return foundProgram; 1007 } 1008 } 1009 1010 return smsProgramData[0]; 1011 } 1012 1013 function updateSmsLegalText(countryCode, fieldName) { 1014 if (!countryCode || !fieldName) { 1015 return; 1016 } 1017 1018 const programs = window?.MC?.smsPhoneData?.programs; 1019 if (!programs || !Array.isArray(programs)) { 1020 return; 1021 } 1022 1023 const program = programs.find(program => program?.countryCode === countryCode); 1024 if (!program || !program.requiredTemplate) { 1025 return; 1026 } 1027 1028 1029 var smsConsentHtmlRenderingFixEnabled = true; 1030 1031 const legalTextElement = document.querySelector('#legal-text-' + fieldName); 1032 if (!legalTextElement) { 1033 return; 1034 } 1035 1036 const divRegex = new RegExp('</?[div][^>]*>', 'gi'); 1037 const blockWrapperRegex = new RegExp('</?(?:div|p)[^>]*>', 'gi'); 1038 const fullAnchorRegex = new RegExp('<a.*?</a>', 'g'); 1039 const anchorRegex = new RegExp('<a href="(.*?)" target="(.*?)">(.*?)</a>'); 1040 1041 const template = smsConsentHtmlRenderingFixEnabled 1042 ? program.requiredTemplate 1043 .replace(/<\/p>\s*<p[^>]*>/gi, ' ') 1044 .replace(blockWrapperRegex, '') 1045 : program.requiredTemplate.replace(divRegex, ''); 1046 1047 1048 1049 legalTextElement.textContent = ''; 1050 const parts = template.split(/(<a href=".*?" target=".*?">.*?<\/a>)/g); 1051 parts.forEach(function(part) { 1052 if (!part) { 1053 return; 1054 } 1055 const anchorMatch = part.match(/<a href="(.*?)" target="(.*?)">(.*?)<\/a>/); 1056 if (anchorMatch) { 1057 const linkElement = document.createElement('a'); 1058 linkElement.href = sanitizeUrl(anchorMatch[1]); 1059 linkElement.target = sanitizeHtml(anchorMatch[2]); 1060 linkElement.textContent = sanitizeHtml(anchorMatch[3]); 1061 legalTextElement.appendChild(linkElement); 1062 } else { 1063 legalTextElement.appendChild(document.createTextNode(part));
1064 } 1065 }); 1066 1067 } 1068 1069 function generateDropdownOptions(smsProgramData) { 1070 if (!smsProgramData || smsProgramData.length === 0) { 1071 return ''; 1072 } 1073 1074 var programs = false 1075 ? smsProgramData.filter(function(p, i, arr) { 1076 return arr.findIndex(function(q) { return q.countryCode === p.countryCode; }) === i; 1077 }) 1078 : smsProgramData; 1079 1080 return programs.map(program => { 1081 const flag = getCountryUnicodeFlag(program.countryCode); 1082 const countryName = getCountryName(program.countryCode); 1083 const callingCode = program.countryCallingCode || ''; 1084 // Sanitize all values to prevent XSS 1085 const sanitizedCountryCode = sanitizeHtml(program.countryCode || ''); 1086 const sanitizedCountryName = sanitizeHtml(countryName || ''); 1087 const sanitizedCallingCode = sanitizeHtml(callingCode || ''); 1088 return '<option value="' + sanitizedCountryCode + '">' + sanitizedCountryName + ' ' + sanitizedCallingCode + '</option>'; 1089 }).join(''); 1090 } 1091 1092 function getCountryName(countryCode) { 1093 if (window.MC?.smsPhoneData?.smsProgramDataCountryNames && Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) { 1094 for (let i = 0; i < window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) { 1095 if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) { 1096 return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name; 1097 } 1098 } 1099 } 1100 return countryCode; 1101 } 1102 1103 function getDefaultPlaceholder(countryCode) { 1104 if (!countryCode || typeof countryCode !== 'string') { 1105 return '+1 000 000 0000'; // Default US placeholder 1106 } 1107 1108 var mockPlaceholders = [ 1109 { 1110 countryCode: 'US', 1111 placeholder: '+1 000 000 0000', 1112 helpText: 'Include the US country code +1 before the phone number', 1113 }, 1114 { 1115 countryCode: 'GB', 1116 placeholder: '+44 0000 000000', 1117 helpText: 'Include the GB country code +44 before the phone number', 1118 }, 1119 { 1120 countryCode: 'CA', 1121 placeholder: '+1 000 000 0000', 1122 helpText: 'Include the CA country code +1 before the phone number', 1123 }, 1124 { 1125 countryCode: 'AU', 1126 placeholder: '+61 000 000 000', 1127 helpText: 'Include the AU country code +61 before the phone number', 1128 }, 1129 { 1130 countryCode: 'DE', 1131 placeholder: '+49 000 0000000', 1132 helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein', 1133 }, 1134 { 1135 countryCode: 'FR', 1136 placeholder: '+33 0 00 00 00 00', 1137 helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone', 1138 }, 1139 { 1140 countryCode: 'ES', 1141 placeholder: '+34 000 000 000', 1142 helpText: 'Incluya el código de paÃs ES +34 antes del número de teléfono', 1143 }, 1144 { 1145 countryCode: 'NL', 1146 placeholder: '+31 0 00000000', 1147 helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer', 1148 }, 1149 { 1150 countryCode: 'BE', 1151 placeholder: '+32 000 00 00 00', 1152 helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone', 1153 }, 1154 { 1155 countryCode: 'CH', 1156 placeholder: '+41 00 000 00 00', 1157 helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein', 1158 }, 1159 { 1160 countryCode: 'AT', 1161 placeholder: '+43 000 000 0000', 1162 helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein', 1163 }, 1164 { 1165 countryCode: 'IE', 1166 placeholder: '+353 00 000 0000', 1167 helpText: 'Include the IE country code +353 before the phone number', 1168 }, 1169 { 1170 countryCode: 'IT', 1171 placeholder: '+39 000 000 0000', 1172 helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono', 1173 }, 1174 ]; 1175 1176 const selectedPlaceholder = mockPlaceholders.find(function(item) { 1177 return item && item.countryCode === countryCode; 1178 }); 1179 1180 return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder; 1181 } 1182 1183 function updatePlaceholder(countryCode, fieldName) { 1184 if (!countryCode || !fieldName) { 1185 return; 1186 } 1187 1188 const phoneInput = document.querySelector('#mce-' + fieldName); 1189 if (!phoneInput) { 1190 return; 1191 } 1192 1193 const placeholder = getDefaultPlaceholder(countryCode); 1194 if (placeholder) { 1195 phoneInput.placeholder = placeholder; 1196 } 1197 } 1198 1199 function updateCountryCodeInstruction(countryCode, fieldName) { 1200 updatePlaceholder(countryCode, fieldName); 1201 1202 } 1203 1204 function getDefaultHelpText(countryCode) { 1205 var mockPlaceholders = [ 1206 { 1207 countryCode: 'US', 1208 placeholder: '+1 000 000 0000', 1209 helpText: 'Include the US country code +1 before the phone number', 1210 }, 1211 { 1212 countryCode: 'GB', 1213 placeholder: '+44 0000 000000', 1214 helpText: 'Include the GB country code +44 before the phone number', 1215 }, 1216 { 1217 countryCode: 'CA', 1218 placeholder: '+1 000 000 0000', 1219 helpText: 'Include the CA country code +1 before the phone number', 1220 }, 1221 { 1222 countryCode: 'AU', 1223 placeholder: '+61 000 000 000', 1224 helpText: 'Include the AU country code +61 before the phone number', 1225 }, 1226 { 1227 countryCode: 'DE', 1228 placeholder: '+49 000 0000000', 1229 helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein', 1230 }, 1231 { 1232 countryCode: 'FR', 1233 placeholder: '+33 0 00 00 00 00', 1234 helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone', 1235 }, 1236 { 1237 countryCode: 'ES', 1238 placeholder: '+34 000 000 000', 1239 helpText: 'Incluya el código de paÃs ES +34 antes del número de teléfono', 1240 }, 1241 { 1242 countryCode: 'NL', 1243 placeholder: '+31 0 00000000', 1244 helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer', 1245 }, 1246 { 1247 countryCode: 'BE', 1248 placeholder: '+32 000 00 00 00', 1249 helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone', 1250 }, 1251 { 1252 countryCode: 'CH', 1253 placeholder: '+41 00 000 00 00', 1254 helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein', 1255 }, 1256 { 1257 countryCode: 'AT', 1258 placeholder: '+43 000 000 0000', 1259 helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein', 1260 }, 1261 { 1262 countryCode: 'IE', 1263 placeholder: '+353 00 000 0000', 1264 helpText: 'Include the IE country code +353 before the phone number', 1265 }, 1266 { 1267 countryCode: 'IT', 1268 placeholder: '+39 000 000 0000', 1269 helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono', 1270 }, 1271 ]; 1272 1273 if (!countryCode || typeof countryCode !== 'string') { 1274 return mockPlaceholders[0].helpText; 1275 } 1276 1277 const selectedHelpText = mockPlaceholders.find(function(item) { 1278 return item && item.countryCode === countryCode; 1279 }); 1280 1281 return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText; 1282 } 1283 1284 function setDefaultHelpText(countryCode) { 1285 const helpTextSpan = document.querySelector('#help-text'); 1286 if (!helpTextSpan) { 1287 return; 1288 } 1289 1290 1291 } 1292 1293 function updateHelpTextCountryCode(countryCode, fieldName) { 1294 if (!countryCode || !fieldName) { 1295 return; 1296 } 1297 1298 setDefaultHelpText(countryCode); 1299 } 1300 1301 function initializeSmsPhoneDropdown(fieldName) { 1302 if (!fieldName || typeof fieldName !== 'string') { 1303 return; 1304 } 1305 1306 const dropdown = document.querySelector('#country-select-' + fieldName); 1307 const displayFlag = document.querySelector('#flag-display-' + fieldName); 1308 1309 if (!dropdown || !displayFlag) { 1310 return; 1311 } 1312 1313 const smsPhoneData = window.MC?.smsPhoneData; 1314 if (smsPhoneData && smsPhoneData.programs && Array.isArray(smsPhoneData.programs)) { 1315 dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs); 1316 } 1317 1318 const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs); 1319 if (defaultProgram && defaultProgram.countryCode) { 1320 dropdown.value = defaultProgram.countryCode; 1321
1322 const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName); 1323 if (flagSpan) { 1324 flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode); 1325 flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag'); 1326 } 1327 1328 updateSmsLegalText(defaultProgram.countryCode, fieldName); 1329 updatePlaceholder(defaultProgram.countryCode, fieldName); 1330 updateCountryCodeInstruction(defaultProgram.countryCode, fieldName); 1331 } 1332 1333 1334 var smsNotRequiredRemoveCountryCodeEnabled = true; 1335 var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":0,"field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":1,"field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","merge_id":2,"help_text_enabled":false,"enabled":true,"order":2,"field_type":"merge"},"MMERGE3":{"name":"MMERGE3","label":"Salutation","helper_text":"","type":"text","required":false,"audience_field_name":"Salutation","enabled":false,"order":null,"field_type":"merge","merge_id":3}}).find(function(f) { return f.name === fieldName && f.type === 'smsphone'; }); 1336 var isRequired = smsField ? smsField.required : false; 1337 var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true; 1338 1339 var phoneInput = document.querySelector('#mce-' + fieldName); 1340 if (phoneInput && defaultProgram.countryCallingCode && shouldAppendCountryCode) { 1341 phoneInput.value = defaultProgram.countryCallingCode; 1342 } 1343 1344 1345 1346 displayFlag?.addEventListener('click', function(e) { 1347 dropdown.focus(); 1348 }); 1349 1350 1351 dropdown?.addEventListener('change', function() { 1352 const selectedCountry = this.value; 1353 1354 if (!selectedCountry || typeof selectedCountry !== 'string') { 1355 return; 1356 } 1357 1358 const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName); 1359 if (flagSpan) { 1360 flagSpan.textContent = getCountryUnicodeFlag(selectedCountry); 1361 flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag'); 1362 } 1363 1364 1365 const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) { 1366 return program && program.countryCode === selectedCountry; 1367 }); 1368 1369 var smsNotRequiredRemoveCountryCodeEnabled = true; 1370 var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":0,"field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":1,"field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","merge_id":2,"help_text_enabled":false,"enabled":true,"order":2,"field_type":"merge"},"MMERGE3":{"name":"MMERGE3","label":"Salutation","helper_text":"","type":"text","required":false,"audience_field_name":"Salutation","enabled":false,"order":null,"field_type":"merge","merge_id":3}}).find(function(f) { return f.name === fieldName && f.type === 'smsphone'; }); 1371 var isRequired = smsField ? smsField.required : false; 1372 var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true; 1373 1374 var phoneInput = document.querySelector('#mce-' + fieldName); 1375 if (phoneInput && selectedProgram.countryCallingCode && shouldAppendCountryCode) { 1376 phoneInput.value = selectedProgram.countryCallingCode; 1377 } 1378 1379 1380 updateSmsLegalText(selectedCountry, fieldName); 1381 updatePlaceholder(selectedCountry, fieldName); 1382 updateCountryCodeInstruction(selectedCountry, fieldName); 1383 }); 1384 } 1385 1386 document.addEventListener('DOMContentLoaded', function() { 1387 const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]'); 1388 1389 smsPhoneFields.forEach(function(dropdown) { 1390 const fieldName = dropdown?.id.replace('country-select-', ''); 1391 initializeSmsPhoneDropdown(fieldName); 1392 }); 1393 });
1394 </script>
1394</div> 1395 1396 </div> 1397 </div> 1398 </div> 1399 </div> 1400 1401 1402 1403 1404 1405 1406 1407 </div> 1408 1409 </div> 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 <!-- sentry-verification-string --> 1425</body> 1426 </html> 1427 1428
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.