PageSourceSearch

https://www.giff.ch/le-festival/contacts/

html giff.ch collected 2026-10-02 20:05:11 UTC 134,741 bytes, 1,852 lines download raw bytes

1<!doctype html>
2<html lang="fr-FR">
3
4<head>
5    <meta charset="UTF-8" />
6    <meta name="viewport" content="width=device-width, initial-scale=1" />
7    <link rel="profile" href="https://gmpg.org/xfn/11" />
8    <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
9	<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
10	
11	<!-- This site is optimized with the Yoast SEO plugin v27.9 - https://yoast.com/product/yoast-seo-wordpress/ -->
12	<title>Contacts - GIFF - Geneva International Film Festival</title>
13<link data-rocket-prefetch href="https://www.googletagmanager.com" rel="dns-prefetch">
14<link data-rocket-prefetch href="https://www.youtube.com" rel="dns-prefetch">
15<link data-rocket-prefetch href="https://player.vimeo.com" rel="dns-prefetch">
16<link data-rocket-prefetch href="https://cdn-cookieyes.com" rel="dns-prefetch">
17<link data-rocket-prefetch href="https://s3.amazonaws.com" rel="dns-prefetch"><link rel="preload" data-rocket-preload as="image" href="https://www.giff.ch/wp-content/themes/giff/medias/images/background-dark-2026.webp" fetchpriority="high">
18	<meta name="description" content="Geneva International Film Festival (GIFF)Rue de Chantepoulet 1CH – 1201 Genève Général :&nbsp;+41 (0)22 809 69 20 Contact pour demande générale (e-mail)" />
19	<link rel="canonical" href="https://www.giff.ch/le-festival/contacts/" />
20	<meta property="og:locale" content="fr_FR" />
21	<meta property="og:type" content="article" />
22	<meta property="og:title" content="Contacts - GIFF - Geneva International Film Festival" />
23	<meta property="og:description" content="Geneva International Film Festival (GIFF)Rue de Chantepoulet 1CH – 1201 Genève Général :&nbsp;+41 (0)22 809 69 20 Contact pour demande générale (e-mail)" />
24	<meta property="og:url" content="https://www.giff.ch/le-festival/contacts/" />
25	<meta property="og:site_name" content="GIFF - Geneva International Film Festival" />
26	<meta property="article:publisher" content="https://www.facebook.com/GenevaInternationalFilmFestivalGIFF/" />
27	<meta property="article:modified_time" content="2026-08-11T09:28:21+00:00" />
28	<meta property="og:image" content="https://www.giff.ch/wp-content/uploads/2026/06/reseaux_2026_1920.webp" />
29	<meta property="og:image:width" content="1920" />
30	<meta property="og:image:height" content="1080" />
31	<meta property="og:image:type" content="image/webp" />
32	<meta name="twitter:card" content="summary_large_image" />
33	<meta name="twitter:site" content="@GIFF_ch" />
34	<meta name="twitter:label1" content="Durée de lecture estimée" />
35	<meta name="twitter:data1" content="1 minute" />
36	
36<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.giff.ch\/le-festival\/contacts\/","url":"https:\/\/www.giff.ch\/le-festival\/contacts\/","name":"Contacts - GIFF - Geneva International Film Festival","isPartOf":{"@id":"https:\/\/www.giff.ch\/#website"},"datePublished":"2021-09-20T13:52:25+00:00","dateModified":"2026-08-11T09:28:21+00:00","description":"Geneva International Film Festival (GIFF)Rue de Chantepoulet 1CH – 1201 Genève Général :&nbsp;+41 (0)22 809 69 20 Contact pour demande générale (e-mail)","breadcrumb":{"@id":"https:\/\/www.giff.ch\/le-festival\/contacts\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.giff.ch\/le-festival\/contacts\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.giff.ch\/le-festival\/contacts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.giff.ch\/"},{"@type":"ListItem","position":2,"name":"LE FESTIVAL","item":"https:\/\/www.giff.ch\/le-festival\/"},{"@type":"ListItem","position":3,"name":"Contacts"}]},{"@type":"WebSite","@id":"https:\/\/www.giff.ch\/#website","url":"https:\/\/www.giff.ch\/","name":"GIFF - Geneva International Film Festival","description":"GIFF is an international film festival in Geneva. It offers films, series, interactive installations and virtual reality works.","publisher":{"@id":"https:\/\/www.giff.ch\/#organization"},"alternateName":"GIFF","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.giff.ch\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.giff.ch\/#organization","name":"GIFF - Geneva International Film Festival","alternateName":"GIFF","url":"https:\/\/www.giff.ch\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.giff.ch\/#\/schema\/logo\/image\/","url":"https:\/\/www.giff.ch\/wp-content\/uploads\/2026\/06\/favion_2026.webp","contentUrl":"https:\/\/www.giff.ch\/wp-content\/uploads\/2026\/06\/favion_2026.webp","width":512,"height":512,"caption":"GIFF - Geneva International Film Festival"},"image":{"@id":"https:\/\/www.giff.ch\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/GenevaInternationalFilmFestivalGIFF\/","https:\/\/x.com\/GIFF_ch","https:\/\/www.instagram.com\/giff.ch"]}]}</script>
36
37	<!-- / Yoast SEO plugin. -->
38
39
40<link rel='dns-prefetch' href='//www.youtube.com' />
41<link rel='dns-prefetch' href='//player.vimeo.com' />
42
43<style id='classic-theme-styles-inline-css'>
44/*! This file is auto-generated */
45.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
46</style>
47<style id='global-styles-inline-css'>
48:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
48--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
48.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
49:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
50:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
51:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
52</style>
53<link rel='stylesheet' id='tkt-main-css-css' href='https://www.giff.ch/wp-content/plugins/ticketack/front/build/main.css?v=2.112.0.202609151713&#038;ver=6.8.10' media='all' />
54<link data-minify="1" rel='stylesheet' id='tkt-override-css-css' href='https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/tkt_override.css?ver=1790258750' media='all' />
55<link data-minify="1" rel='stylesheet' id='bootstrap-icons-css' href='https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/vendors/icons-1.11.2/font/bootstrap-icons.css?ver=1790258750' media='all' />
56<link data-minify="1" rel='stylesheet' id='add-to-calendar-css' href='https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/vendors/add-to-calendar.css?ver=1790258750' media='all' />
57<link data-minify="1" rel='stylesheet' id='theme-style-css' href='https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/style.css?ver=1790258750' media='all' />
58<link data-minify="1" rel='stylesheet' id='main-style-css' href='https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/scss/main.css?ver=1790258750' media='all' />
59<script src="https://www.giff.ch/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
vendor: 1 bytes, line 59
59
60<script src="https://www.giff.ch/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
vendor: 1 bytes, line 60
60
61<script id="jquery-js-after">
62window.tktjQuery=window.jQuery;
63</script>
vendor: 1 bytes, line 63
63
64<script src="https://www.youtube.com/player_api?ver=1" id="youtube-api-js"></script>
vendor: 1 bytes, line 64
64
65<script src="https://player.vimeo.com/api/player.js?ver=1" id="vimeo-api-js"></script>
65
66<meta name="generator" content="WPML ver:4.9.5 stt:1,4;" />
67<link rel="icon" href="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-32x32.webp" sizes="32x32" />
68<link rel="icon" href="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-192x192.webp" sizes="192x192" />
69<link rel="apple-touch-icon" href="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-180x180.webp" />
70<meta name="msapplication-TileImage" content="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-270x270.webp" />
71
72    
73        
73<script>
74            window.dataLayer = window.dataLayer || [];
75
76            function gtag() {
77                dataLayer.push(arguments);
78            }
79
80            gtag("consent", "default", {
81                ad_storage: "granted",
82                analytics_storage: "granted",
83                functionality_storage: "granted",
84                personalization_storage: "granted",
85                security_storage: "granted",
86                wait_for_update: 2000,
87            });
88
89            gtag("set", "ads_data_redaction", true);
90            gtag("set", "url_passthrough", true);
91        </script>
91
92
93        
93<script>
vendor: 610 bytes, lines 93-107
93
94            (function(w, d, s, l, i) {
95                w[l] = w[l] || [];
96                w[l].push({
97                    'gtm.start': new Date().getTime(),
98                    event: 'gtm.js'
99                });
100                var f = d.getElementsByTagName(s)[0],
101                    j = d.createElement(s),
102                    dl = l != 'dataLayer' ? '&l=' + l : '';
103                j.async = true;
104                j.src =
105                    'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
106                f.parentNode.insertBefore(j, f);
107            })(window, document, 'script', 'dataLayer', '
107GTM-M39VPWR
vendor: 12 bytes, lines 107-108
107');
108        
108</script>
108
109
110
111        
111<script data-minify="1" id="cookieyes" type="text/javascript" src="https://www.giff.ch/wp-content/cache/min/1/client_data/e4215d7636e2abac8801d8b8/script.js?ver=1790258750"></script>
111
112
113    
114<meta name="generator" content="WP Rocket 3.23.3.3" data-wpr-features="wpr_minify_js wpr_preconnect_external_domains wpr_oci wpr_minify_css wpr_cdn wpr_preload_links wpr_desktop" /></head>
115
116<body class="wp-singular page-template-default page page-id-4215 page-child parent-pageid-36820 wp-custom-logo wp-embed-responsive wp-theme-giff  intersaison">
117
118            <!-- Google Tag Manager (noscript) -->
vendor: 89 bytes, lines 118-120
118
119        <noscript>
120            <iframe src="https://www.googletagmanager.com/ns.html?id=
120GTM-M39VPWR
vendor: 100 bytes, lines 120-122
120" height="0" width="0" style="display:none;visibility:hidden"></iframe>
121        </noscript>
122        
122<!-- End Google Tag Manager (noscript) -->
123    
124    <main  id="main-container" class="container-fluid d-flex flex-column">
125
126        <header  id="main-nav" class="sticky-top is-selling is-nav-inter ">
127
128  <div  id="heading-menu" class="d-flex h-100">
129
130    <div id="main-nav-brand" class="my-auto me-auto">
131      <a href="https://www.giff.ch" class="d-flex">
132        <h1 class="brand-website">
133          <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="123" height="96" viewBox="0 0 123 96">
134            <path d="M38.72-54.78c0-9.02-6.27-15.73-18.59-15.73C8.03-70.51,1.1-63.8,1.1-54.56v39.82C1.1-5.39,8.14,1.1,20.9,1.1c7.15,0,14.96-2.42,17.82-4.18v-37.4H19.91v12.1h1.1v18.26a2.148,2.148,0,0,1-.77.11c-1.43,0-1.43-1.1-1.43-2.53V-56.87c0-1.32,0-2.64,1.1-2.64s1.1,1.21,1.1,2.64v9.24H38.72ZM58.96,0V-69.3H41.25V0ZM79.53,0V-27.61H90.31V-42.02H79.53V-55H91.08V-69.3H61.82V0Zm31.24,0V-27.61h10.78V-42.02H110.77V-55h11.55V-69.3H93.06V0Z" transform="translate(0 82)" fill="#000000" />
135          </svg>
136        </h1>
137        <div class="brand-sentence">
138          <div>
139            32ND            GENEVA
140          </div>
141          <div>INTERNATIONAL</div>
142          <div>FILM FESTIVAL</div>
143          <div>30.10-8.11.2026</div>
144        </div>
145      </a>
146    </div>
147
148    <div id="main-nav-links" class="m-auto d-none d-xl-flex">
149                <button class="giff-primary-hover active btn-sub-menu" onClick="openMenu(this, 'le_festival')">
150            LE FESTIVAL          </button>
151                  <button class="gdm-primary-hover  btn-sub-menu" onClick="openMenu(this, 'gdm')">
152            Industrie          </button>
153                  <button class="giff-primary-hover  btn-sub-menu" onClick="openMenu(this, 'agenda')">
154            AGENDA          </button>
155                  <button class="giff-primary-hover  btn-sub-menu" onClick="openMenu(this, 'relive')">
156            Relive          </button>
157                  </div>
158
159          <div id="main-nav-sub-links" class="d-flex m-auto me-0">
160                  <a href="https://www.giff.ch/early-bird/" class="btn btn-link btn-infoToggle"> <i class="bi bi-lg bi-ticket-perforated"></i> <span class="h6 infoToggle">
161              Early&nbsp;Bird            </span> </a>
162                                  <a href="https://www.giff.ch/panier/" class="btn btn-link btn-infoToggle">
163            <i class="bi bi-lg bi-cart3"></i>
164            <span class="h6 infoToggle">
165              Panier            </span>
166            <div class="tkt-wrapper" data-component="Cart/CartIcon"></div>
167          </a>
168                      </div>
169    
170    <div class="menu-lang m-auto  mx-4 me-xl-auto   ">
171          <a href="https://www.giff.ch/en/le-festival/contacts/" class="h3">EN</a>
172<span class="h3">|</span>
173    <span class="h3 text-primary">FR</span>
174    </div>
175
176    <button type="button" id="main-nav-toggler" class="nav-toggler btn btn-link d-xl-none" aria-label="Menu" data-menu-target="#main_menu-menu">
177      <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="68" height="48" viewBox="0 0 68 48">
178    <rect width="68" height="8" y="0"/>
179    <rect width="68" height="8" y="20"/>
180    <rect width="68" height="8" y="40"/>
181</svg>    </button>
182
183  </div>
184
185  <div  id="le_festival-menu" class="sub-menu d-none d-xl-block"><div class='py-2 d-flex justify-content-start justify-content-xl-center border-top' data-menu-id='root-menu'><div class='scroll-prog'><a href="https://www.giff.ch/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page menu-item-home"><span class='h2'>ACCUEIL</span></a></li>
186<button class="me-2 menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children btn btn-menu btn-link" data-menuTarget="menu-46379"><span class='h2'>LE FESTIVAL<i class="bi bi-arrow-down-short ms-n1"></i></span></button></li>
187<a href="https://www.giff.ch/le-festival/partenaires/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h2'>Partenaires</span></a></li>
188<button class="me-2 menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children btn btn-menu btn-link" data-menuTarget="menu-37550"><span class='h2'>Archives<i class="bi bi-arrow-down-short ms-n1"></i></span></button></li>
189</div></div><div id='menu-46379' class='sub-sub-menu pt-2 pb-1 d-flex w-100 '><a href="https://www.giff.ch/le-festival/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-page-parent"><span class='h3'>à propos</span></a></li>
190<a href="https://www.giff.ch/le-festival/sections-et-prix/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>SECTIONS &amp; PRIX 2026</span></a></li>
191<a href="https://www.giff.ch/le-festival/benevoles/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>Bénévoles</span></a></li>
192<a href="https://www.giff.ch/le-festival/equipe-et-fondation/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>ÉQUIPE &#038; FONDATION</span></a></li>
193<a href="https://www.giff.ch/le-festival/xr-roadshow/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>XR ROADSHOW</span></a></li>
194<a href="https://www.giff.ch/le-festival/contacts/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-4215 current_page_item"><span class='h3'>Contacts</span></a></li>
195</div><div id='menu-37550' class='sub-sub-menu pt-2 pb-1 d-flex w-100 d-none'><a href="https://www.giff.ch/le-festival/archives-2025/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>2025</span></a></li>
196<a href="https://www.giff.ch/le-festival/archives-2024/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>2024</span></a></li>
197<a href="https://www.giff.ch/le-festival/archives-2023/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>2023</span></a></li>
198<a href="https://www.giff.ch/le-festival/archives-2022/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>2022</span></a></li>
199<a href="https://www.giff.ch/le-festival/archives-2021/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>2021</span></a></li>
200<a href="https://www.giff.ch/le-festival/archives-2020/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>2020</span></a></li>
201<a href="https://www.giff.ch/le-festival/archives-2019/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>2019</span></a></li>
202</div></div><div  id="gdm-menu" class="sub-menu d-none "><div class='py-2 d-flex justify-content-start justify-content-xl-center border-top' data-menu-id='root-menu'><div class='scroll-prog'><a href="https://www.giff.ch/giff-pro/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h2'>GIFF PRO</span></a></li>
203<a href="https://www.giff.ch/giff-pro/presse/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h2'>Presse</span></a></li>
204<a href="https://www.giff.ch/giff-pro/accreditation/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h2'>Accréditations</span></a></li>
205</div></div></div><div  id="agenda-menu" class="sub-menu d-none "><div class='py-2 d-flex justify-content-start justify-content-xl-center border-top' data-menu-id='root-menu'><div class='scroll-prog'><a href="https://www.giff.ch/agenda/giff-unlimited/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h2'>GIFF UNLIMITED</span></a></li>
206<a href="https://www.giff.ch/agenda/scolaire/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h2'>ACTIVITÉS SCOLAIRES AU FESTIVAL</span></a></li>
207</div></div></div><div  id="relive-menu" class="sub-menu d-none "><div class='py-2 d-flex justify-content-start justify-content-xl-center border-top' data-menu-id='root-menu'><div class='scroll-prog'><a href="https://www.giff.ch/giff-tv/2026/" class="me-4 menu-item menu-item-type-custom menu-item-object-custom"><span class='h2'>Relive 2026</span></a></li>
208<a href="https://www.giff.ch/giff-tv/2025/" class="me-4 menu-item menu-item-type-custom menu-item-object-custom"><span class='h2'>Relive 2025</span></a></li>
209<a href="https://www.giff.ch/giff-tv/2024/" class="me-4 menu-item menu-item-type-custom menu-item-object-custom"><span class='h2'>Relive 2024</span></a></li>
210<a href="https://www.giff.ch/giff-tv/2023/" class="me-4 menu-item menu-item-type-custom menu-item-object-custom"><span class='h2'>Relive 2023</span></a></li>
211<a href="https://www.giff.ch/giff-tv/2022/" class="me-4 menu-item menu-item-type-custom menu-item-object-custom"><span class='h2'>Relive 2022</span></a></li>
212<a href="https://www.giff.ch/giff-tv/2021/" class="me-4 menu-item menu-item-type-custom menu-item-object-custom"><span class='h2'>Relive 2021</span></a></li>
213</div></div></div></header>
214
215
216<div  class="offcanvas offcanvas-end" tabindex="-1" id="menu-nav-mobile" aria-labelledby="menu-nav-label">
217  <div  class="offcanvas-header d-flex pt-0">
218
219    <div class="h4 me-sm-3 logo-header-mobile"> <a href="https://www.giff.ch" class="d-flex">
220        <div class="brand-website">
221          <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="123" height="96" viewBox="0 0 123 96">
222            <path d="M38.72-54.78c0-9.02-6.27-15.73-18.59-15.73C8.03-70.51,1.1-63.8,1.1-54.56v39.82C1.1-5.39,8.14,1.1,20.9,1.1c7.15,0,14.96-2.42,17.82-4.18v-37.4H19.91v12.1h1.1v18.26a2.148,2.148,0,0,1-.77.11c-1.43,0-1.43-1.1-1.43-2.53V-56.87c0-1.32,0-2.64,1.1-2.64s1.1,1.21,1.1,2.64v9.24H38.72ZM58.96,0V-69.3H41.25V0ZM79.53,0V-27.61H90.31V-42.02H79.53V-55H91.08V-69.3H61.82V0Zm31.24,0V-27.61h10.78V-42.02H110.77V-55h11.55V-69.3H93.06V0Z" transform="translate(0 82)" fill="#000000" />
223          </svg>
224        </div>
225        <div class="brand-sentence">
226          <div>
227            32th            GENEVA
228          </div>
229          <div>INTERNATIONAL</div>
230          <div>FILM FESTIVAL</div>
231          <div>30.10-8.11.2026</div>
232        </div>
233      </a>
234    </div>
235
236    <div class="m-auto menu-lang">
237          <a href="https://www.giff.ch/en/le-festival/contacts/" class="h3">EN</a>
238<span class="h3">|</span>
239    <span class="h3 text-primary">FR</span>
240    </div>
241    <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
242  </div>
243  <div  class="offcanvas-body d-flex flex-column">
244        <hr class="mt-0 mb-3">
245    <div id="menu-wrapper" class="h-100 d-flex flex-column">
246              <button class="h1 btn-link mb-1 collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#accordion-le_festival" aria-expanded="false" aria-controls="accordion-le_festival">
247          LE FESTIVAL        </button>
248        <div id="accordion-le_festival" class="accordion-collapse collapse" aria-labelledby="heading-le_festival" data-bs-parent="#menu-wrapper">
249          <div class="accordion"><a href='https://www.giff.ch/' target='' rel='' class='h2 mb-1 d-block'>ACCUEIL</a>
250				<div class='accordion-item'>
251					<div class='accordion-header' id='heading-46379'>
252						<button class='h2 accordion-button collapsed mb-1' type='button' data-bs-toggle='collapse' data-bs-target='#accordion-46379' aria-expanded='false' aria-controls='accordion-46379'>
253							LE FESTIVAL
254						</button>
255					</div>
256					<div id='accordion-46379' class='accordion-collapse collapse' aria-labelledby='heading-46379' data-bs-parent='#navMobile-'>
257						<div class='accordion-body ps-3'><a href='https://www.giff.ch/le-festival/' target='' rel='' class='h2 mb-1 d-block'>à propos</a><a href='https://www.giff.ch/le-festival/sections-et-prix/' target='' rel='' class='h2 mb-1 d-block'>SECTIONS &amp; PRIX 2026</a><a href='https://www.giff.ch/le-festival/benevoles/' target='' rel='' class='h2 mb-1 d-block'>Bénévoles</a><a href='https://www.giff.ch/le-festival/equipe-et-fondation/' target='' rel='' class='h2 mb-1 d-block'>ÉQUIPE & FONDATION</a><a href='https://www.giff.ch/le-festival/xr-roadshow/' target='' rel='' class='h2 mb-1 d-block'>XR ROADSHOW</a><a href='https://www.giff.ch/le-festival/contacts/' target='' rel='' class='h2 mb-1 d-block'>Contacts</a>
258						</div>
259					</div>
260				</div><a href='https://www.giff.ch/le-festival/partenaires/' target='' rel='' class='h2 mb-1 d-block'>Partenaires</a>
261				<div class='accordion-item'>
262					<div class='accordion-header' id='heading-37550'>
263						<button class='h2 accordion-button collapsed mb-1' type='button' data-bs-toggle='collapse' data-bs-target='#accordion-37550' aria-expanded='false' aria-controls='accordion-37550'>
264							Archives
265						</button>
266					</div>
267					<div id='accordion-37550' class='accordion-collapse collapse' aria-labelledby='heading-37550' data-bs-parent='#navMobile-'>
268						<div class='accordion-body ps-3'><a href='https://www.giff.ch/le-festival/archives-2025/' target='' rel='' class='h2 mb-1 d-block'>2025</a><a href='https://www.giff.ch/le-festival/archives-2024/' target='' rel='' class='h2 mb-1 d-block'>2024</a><a href='https://www.giff.ch/le-festival/archives-2023/' target='' rel='' class='h2 mb-1 d-block'>2023</a><a href='https://www.giff.ch/le-festival/archives-2022/' target='' rel='' class='h2 mb-1 d-block'>2022</a>
268<a href='https://www.giff.ch/le-festival/archives-2021/' target='' rel='' class='h2 mb-1 d-block'>2021</a><a href='https://www.giff.ch/le-festival/archives-2020/' target='' rel='' class='h2 mb-1 d-block'>2020</a><a href='https://www.giff.ch/le-festival/archives-2019/' target='' rel='' class='h2 mb-1 d-block'>2019</a>
269						</div>
270					</div>
271				</div></div>        </div>
272        <button class="h1 btn-link mb-1 collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#accordion-gdm" aria-expanded="false" aria-controls="accordion-gdm">
273          Industrie        </button>
274        <div id="accordion-gdm" class="accordion-collapse collapse" aria-labelledby="heading-gdm" data-bs-parent="#menu-wrapper">
275          <div class="accordion"><a href='https://www.giff.ch/giff-pro/' target='' rel='' class='h2 mb-1 d-block'>GIFF PRO</a><a href='https://www.giff.ch/giff-pro/presse/' target='' rel='' class='h2 mb-1 d-block'>Presse</a><a href='https://www.giff.ch/giff-pro/accreditation/' target='' rel='' class='h2 mb-1 d-block'>Accréditations</a></div>        </div>
276        <button class="h1 btn-link mb-1 collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#accordion-agenda" aria-expanded="false" aria-controls="accordion-agenda">
277          AGENDA        </button>
278        <div id="accordion-agenda" class="accordion-collapse collapse" aria-labelledby="heading-agenda" data-bs-parent="#menu-wrapper">
279          <div class="accordion"><a href='https://www.giff.ch/agenda/giff-unlimited/' target='' rel='' class='h2 mb-1 d-block'>GIFF UNLIMITED</a><a href='https://www.giff.ch/agenda/scolaire/' target='' rel='' class='h2 mb-1 d-block'>ACTIVITÉS SCOLAIRES AU FESTIVAL</a></div>        </div>
280        <button class="h1 btn-link mb-1 collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#accordion-relive" aria-expanded="false" aria-controls="accordion-relive">
281          Relive        </button>
282        <div id="accordion-relive" class="accordion-collapse collapse" aria-labelledby="heading-relive" data-bs-parent="#menu-wrapper">
283          <div class="accordion"><a href='https://www.giff.ch/giff-tv/2026/' target='' rel='' class='h2 mb-1 d-block'>Relive 2026</a><a href='https://www.giff.ch/giff-tv/2025/' target='' rel='' class='h2 mb-1 d-block'>Relive 2025</a><a href='https://www.giff.ch/giff-tv/2024/' target='' rel='' class='h2 mb-1 d-block'>Relive 2024</a><a href='https://www.giff.ch/giff-tv/2023/' target='' rel='' class='h2 mb-1 d-block'>Relive 2023</a><a href='https://www.giff.ch/giff-tv/2022/' target='' rel='' class='h2 mb-1 d-block'>Relive 2022</a><a href='https://www.giff.ch/giff-tv/2021/' target='' rel='' class='h2 mb-1 d-block'>Relive 2021</a></div>        </div>
284          </div>
285    <div class="mt-auto">
286      <div class="row mt-5">
287        <div class="col-6 d-flex flex-column">
288          <div class="footer_menu_1 mt-auto text-uppercase">
289                            <a href="https://www.giff.ch/newsletter/" target="" class="footer-link-menu d-block">
290                  Newsletter                </a>
291                              <a href="https://www.giff.ch/giff-pro/presse/" target="" class="footer-link-menu d-block">
292                  Presse                </a>
293                              <a href="https://www.giff.ch/le-festival/contacts/" target="" class="footer-link-menu d-block">
294                  Contacts                </a>
295                                    </div>
296          <div class="footer-network mt-3 mb-4">
297                          <a href="https://www.facebook.com/GenevaInternationalFilmFestivalGIFF/" target="_blank" rel="noreferrer" class="me-2 h3" title="facebook"><i class="bi bi-facebook"></i></a>
298                          <a href="https://www.instagram.com/giff.ch/" target="_blank" rel="noreferrer" class="me-2 h3" title="instagram"><i class="bi bi-instagram"></i></a>
299                          <a href="https://twitter.com/GIFF_ch" target="_blank" rel="noreferrer" class="me-2 h3" title="twitter"><i class="bi bi-twitter"></i></a>
300                          <a href="https://www.linkedin.com/company/festival-tous-ecrans/" target="_blank" rel="noreferrer" class="me-2 h3" title="linkedin"><i class="bi bi-linkedin"></i></a>
301                      </div>
302        </div>
303        <div class="col-6">
304          <div class="footer-menu-2 h-100 d-flex flex-column">
305                  <a href="https://www.giff.ch/mentions-legales/" target="" class="footer-link-menu-2 font-size-sm mt-auto">
306        Mentions Légales      </a>
307      <a href="https://www.giff.ch/politique-de-confidentialite/" target="" class="footer-link-menu-2 font-size-sm ">
308        Politique de confidentialité      </a>
309      <a href="https://www.giff.ch/billetterie/conditions-de-vente/" target="" class="footer-link-menu-2 font-size-sm ">
310        Conditions de vente      </a>
311            <div class="font-size-sm mt-3 mb-4">© GIFF
312              2026            </div>
313          </div>
314        </div>
315      </div>
316    </div>
317  </div>
318</div><article  class="mt-4 static-content">
319  <div  class="row"><div class="mx-auto col-md-11 col-lg-10 col-xl-8">      <h1 class="mb-3">
320      Contacts    </h1>
321    
322<p><strong>Geneva International Film Festival (GIFF)</strong><br>Rue de Chantepoulet 1<br>CH – 1201 Genève</p>
323
324
325
326<p>Général :<strong>&nbsp;+41 (0)22 809 69 20</strong></p>
327
328
329
330<p><a href="mailto:[email protected]" target="_blank" rel="noreferrer noopener">Contact pour demande générale (e-mail)</a></p>
331
332
333
334<p>Contact pour demande spécifique:</p>
335
336
337
338<p class="has-text-align-left"><a href="mailto:[email protected]" target="_blank" rel="noreferrer noopener">Administration</a><br><a href="mailto:[email protected]">Programmation</a><br><a href="mailto:[email protected]">Communication</a><br><a href="mailto:[email protected]">Partenariat</a><br><a href="mailto:[email protected]" target="_blank" rel="noreferrer noopener">Press</a><a href="mailto:[email protected]">e</a></p>
339
340
341
342<p></p>
343
344
345
346<p></p>
347  </div></div></article>
348
349
350<footer  class="mt-auto">
351  <div  class="row mt-5 pt-5">
352    <div class="d-none d-xl-block col-xl-4">
353        <a href="https://www.giff.ch" class="logo-footer-link">
354    <img src="https://www.giff.ch/wp-content/uploads/2026/06/giff-logo-2026-1.svg" alt="" class="logo-footer">
355  </a>
356    </div>
357    <div class="col-12 col-xl-8">
358      <hr class="mt-2 mb-4">
359      <div class="d-sm-flex w-100">
360        <div class="d-none d-md-block d-lg-none w-100">
361            <a href="https://www.giff.ch" class="logo-footer-link">
362    <img src="https://www.giff.ch/wp-content/uploads/2026/06/giff-logo-2026-1.svg" alt="" class="logo-footer">
363  </a>
364        </div>
365        <div id="footer_menu" class="d-lg-flex justify-content-between text-center text-sm-start w-100 ps-sm-5 ps-lg-0">
366          <div class="vertical-bar d-none d-lg-block"></div>
367          <div class="footer-network">
368                          <a href="https://www.facebook.com/GenevaInternationalFilmFestivalGIFF/" target="_blank" rel="noreferrer" class="me-2 h3" title="facebook"><i class="bi bi-facebook"></i></a>
369                                      <a href="https://www.instagram.com/giff.ch/" target="_blank" rel="noreferrer" class="me-2 h3" title="instagram"><i class="bi bi-instagram"></i></a>
370                                      <a href="https://twitter.com/GIFF_ch" target="_blank" rel="noreferrer" class="me-2 h3" title="twitter"><i class="bi bi-twitter-x"></i></a>
371                                      <a href="https://www.linkedin.com/company/festival-tous-ecrans/" target="_blank" rel="noreferrer" class="me-2 h3" title="linkedin"><i class="bi bi-linkedin"></i></a>
372                      </div>
373          <div class="vertical-bar d-none d-lg-block"></div>
374                        <a href="https://www.giff.ch/newsletter/" target="" class="footer-link-menu">
375                Newsletter              </a>
376              <div class="vertical-bar d-none d-lg-block"></div>
377                          <a href="https://www.giff.ch/giff-pro/presse/" target="" class="footer-link-menu">
378                Presse              </a>
379              <div class="vertical-bar d-none d-lg-block"></div>
380                          <a href="https://www.giff.ch/le-festival/contacts/" target="" class="footer-link-menu">
381                Contacts              </a>
382              <div class="vertical-bar d-none d-lg-block"></div>
383                              </div>
384        <div class="d-lg-none w-100 mt-sm-4">
385          <div class="mt-3 mt-lg-5 pt-sm-3 pt-lg-0 mb-4 footer-menu-2 text-center text-sm-start">
386                  <a href="https://www.giff.ch/mentions-legales/" target="" class="footer-link-menu-2 font-size-sm mt-auto">
387        Mentions Légales      </a>
388      <a href="https://www.giff.ch/politique-de-confidentialite/" target="" class="footer-link-menu-2 font-size-sm ">
389        Politique de confidentialité      </a>
390      <a href="https://www.giff.ch/billetterie/conditions-de-vente/" target="" class="footer-link-menu-2 font-size-sm ">
391        Conditions de vente      </a>
392            <div class="font-size-sm mt-3">© GIFF
393              2026            </div>
394          </div>
395        </div>
396      </div>
397      <div class="d-lg-flex">
398        <div class="d-none d-lg-block">
399          <div class="mt-3 mt-lg-5 pt-sm-3 pt-lg-0 mb-4 footer-menu-2">
400                  <a href="https://www.giff.ch/mentions-legales/" target="" class="footer-link-menu-2 font-size-sm mt-auto">
401        Mentions Légales      </a>
402      <a href="https://www.giff.ch/politique-de-confidentialite/" target="" class="footer-link-menu-2 font-size-sm ">
403        Politique de confidentialité      </a>
404      <a href="https://www.giff.ch/billetterie/conditions-de-vente/" target="" class="footer-link-menu-2 font-size-sm ">
405        Conditions de vente      </a>
406            <div class="font-size-sm mt-3">© GIFF
407              2026<br>
408            </div>
409          </div>
410        </div>
411        <div id="footer-logo" class="mt-3 text-center ps-lg-4">
412  <div class="d-flex justify-content-between w-100 flex-wrap">
413    <div class="mb-3">
414      <div class="d-flex h-100"><a href="http://www.ville-geneve.ch/" target="_blank" rel="noreferrer nofollow" class="m-auto ville-geneve"><img width="300" height="180" src="https://www.giff.ch/wp-content/uploads/2025/10/logo-ville-geneve-noir-blanc.webp" class="pe-1 color-reverse" alt="" style="width:95px" decoding="async" loading="lazy" /></a></div>
415    </div>
416    <div class="mb-3">
417      <div class="d-flex h-100"><a href="https://www.ge.ch/" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="350" height="308" src="https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc-350x308.png" class="px-1" alt="https://www.ge.ch/" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc-350x308.png 350w, https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc-234x206.png 234w, https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc-766x675.png 766w, https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc-970x855.png 970w, https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc-1165x1026.png 1165w, https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc-1532x1350.png 1532w, https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc.png 1664w" sizes="auto, (max-width: 350px) 100v
417w, 350px" /></a></div>
418    </div>
419    <div class="mb-3">
420      <div class="d-flex h-100"><a href="https://www.bak.admin.ch/bak/fr/home.html" target="_blank" rel="noreferrer nofollow" class="m-auto bak"><img width="720" height="292" src="https://www.giff.ch/wp-content/uploads/2021/10/OFC_blanc-720x292.png" class="px-1" alt="https://www.bak.admin.ch/bak/de/home.html" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2021/10/OFC_blanc-720x292.png 720w, https://www.giff.ch/wp-content/uploads/2021/10/OFC_blanc-480x194.png 480w, https://www.giff.ch/wp-content/uploads/2021/10/OFC_blanc-1200x486.png 1200w, https://www.giff.ch/wp-content/uploads/2021/10/OFC_blanc-1520x615.png 1520w, https://www.giff.ch/wp-content/uploads/2021/10/OFC_blanc-1824x739.png 1824w" sizes="auto, (max-width: 720px) 100vw, 720px" /></a></div>
421    </div>
422    <div class="mb-3">
423      <div class="d-flex h-100"><a href="https://www.mediadesk.ch/" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="720" height="107" src="https://www.giff.ch/wp-content/uploads/2021/10/mediadesk_blanc-720x107.png" class="py-2 px-1" alt="https://www.mediadesk.ch/" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2021/10/mediadesk_blanc-720x107.png 720w, https://www.giff.ch/wp-content/uploads/2021/10/mediadesk_blanc-480x72.png 480w, https://www.giff.ch/wp-content/uploads/2021/10/mediadesk_blanc-1200x179.png 1200w, https://www.giff.ch/wp-content/uploads/2021/10/mediadesk_blanc-1520x227.png 1520w, https://www.giff.ch/wp-content/uploads/2021/10/mediadesk_blanc-1824x272.png 1824w" sizes="auto, (max-width: 720px) 100vw, 720px" /></a></div>
424    </div>
425    <div class="mb-3">
426      <div class="d-flex h-100"><a href="https://www.loro.ch/" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="720" height="244" src="https://www.giff.ch/wp-content/uploads/2021/10/loterieromande_blanc-1-720x244.png" class="ps-1" alt="https://www.loro.ch/fr" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2021/10/loterieromande_blanc-1-720x244.png 720w, https://www.giff.ch/wp-content/uploads/2021/10/loterieromande_blanc-1-480x162.png 480w, https://www.giff.ch/wp-content/uploads/2021/10/loterieromande_blanc-1-1200x406.png 1200w, https://www.giff.ch/wp-content/uploads/2021/10/loterieromande_blanc-1-1520x514.png 1520w, https://www.giff.ch/wp-content/uploads/2021/10/loterieromande_blanc-1-1824x617.png 1824w" sizes="auto, (max-width: 720px) 100vw, 720px" /></a></div>
427    </div>
428  </div>
429  <div class="d-flex justify-content-between w-100 flex-wrap">
430    <div class="mb-3">
431      <div class="d-flex h-100"><a href="https://www.edmond-de-rothschild.com/" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="400" height="110" src="https://www.giff.ch/wp-content/uploads/2023/07/edmond-de-rothschild.png" class="pt-1 pe-1" alt="" style="width:90px" decoding="async" loading="lazy" /></a></div>
432    </div>
433    <div class="mb-3">
434      <div class="d-flex h-100"><a href="https://leplaza-cinema.ch" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="400" height="219" src="https://www.giff.ch/wp-content/uploads/2025/10/FP_Logo_Hirizontal.webp" class="p-2 color-reverse" alt="" style="width:90px" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2025/10/FP_Logo_Hirizontal.webp 400w, https://www.giff.ch/wp-content/uploads/2025/10/FP_Logo_Hirizontal-376x206.webp 376w" sizes="auto, (max-width: 400px) 100vw, 400px" /></a></div>
435    </div>
436    <div class="mb-3">
437      <div class="d-flex h-100"><a href="http://www.swissperform.ch/nc/fr/page-daccueil.html" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="674" height="308" src="https://www.giff.ch/wp-content/uploads/2021/10/swissperform_blanc-1-674x308.png" class="px-1" alt="http://www.swissperform.ch/nc/fr/page-daccueil.html" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2021/10/swissperform_blanc-1-674x308.png 674w, https://www.giff.ch/wp-content/uploads/2021/10/swissperform_blanc-1-451x206.png 451w, https://www.giff.ch/wp-content/uploads/2021/10/swissperform_blanc-1-1200x548.png 1200w, https://www.giff.ch/wp-content/uploads/2021/10/swissperform_blanc-1-1520x694.png 1520w, https://www.giff.ch/wp-content/uploads/2021/10/swissperform_blanc-1-1824x833.png 1824w" sizes="auto, (max-width: 674px) 100vw, 674px" /></a></div>
438    </div>
439    <div class="mb-3">
440      <div class="d-flex h-100"><a href="https://www.srgssr.ch/fr/accueil/" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="676" height="233" src="https://www.giff.ch/wp-content/uploads/2021/10/srg_ssr_blanc_web.png" class="" alt="https://www.srgssr.ch/fr/accueil/" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2021/10/srg_ssr_blanc_web.png 676w, https://www.giff.ch/wp-content/uploads/2021/10/srg_ssr_blanc_web-480x165.png 480w" sizes="auto, (max-width: 676px) 100v
440w, 676px" /></a></div>
441    </div>
442    <div class="mb-3">
443      <div class="d-flex h-100"><a href="http://www.rts.ch/" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="269" height="200" src="https://www.giff.ch/wp-content/uploads/2023/07/rts-logo-1.png" class="px-3" alt="" style="width:90px" decoding="async" loading="lazy" /></a></div>
444    </div>
445    <div class="mb-3">
446      <div class="d-flex h-100"><a href="https://www.tdg.ch" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="720" height="281" src="https://www.giff.ch/wp-content/uploads/2026/06/tribune-de-geneve-logo-720x281.webp" class="py-2 ps-1" alt="" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2026/06/tribune-de-geneve-logo-720x281.webp 720w, https://www.giff.ch/wp-content/uploads/2026/06/tribune-de-geneve-logo-480x187.webp 480w, https://www.giff.ch/wp-content/uploads/2026/06/tribune-de-geneve-logo.webp 813w" sizes="auto, (max-width: 720px) 100vw, 720px" /></a></div>
447    </div>
448  </div>
449</div>      </div>
450    </div>
451  </div>
452</footer>
453</main>
454
455<div  class="background-site-wrapper">
456  <img fetchpriority="high" src="https://www.giff.ch/wp-content/themes/giff/medias/images/background-dark-2026.webp" alt="" class="background-site">
457</div>
458
459<div  class="modal fade" id="newsletterModal" data-bs-backdrop="static" data-bs-keyboard="true" tabindex="-1" aria-labelledby="newsletterLabel" aria-hidden="true">
460  <div  class="modal-dialog modal-dialog-centered modal-lg">
461    <div  class="modal-content">
462      <div class="modal-header">
463        <div class="modal-title h2 mb-0 py-2" id="newsletterLabel">
464          Newsletter
465        </div>
466        <button id="closeNewsletter" type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
467      </div>
468      <div class="modal-body">
469        <div class="row">
470          <div class="col-12 col-sm-4 col-xl-3">
471            <div class="mt-1 mb-3 d-none d-sm-block"><img src="https://www.giff.ch/wp-content/themes/giff/medias/images/giff_logo_2026.svg" alt="" class="w-100 img-fluid"> </div>
472          </div>
473          <div class="col-12 col-sm-8 col-xl-9">
474            <div id="mc_embed_signup">
475              <p class="mb-2 h3 mt-3 pt-1">
476                Inscrivez-vous pour recevoir les dernières nouvelles du GIFF              </p>
477              <div id="mc_embed_signup">
478                <form action="https://giff.us7.list-manage.com/subscribe/post?u=4a6caf431f879e7480319e146&amp;id=f757bf97fe&amp;f_id=0075cfe1f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
479                  <div id="mc_embed_signup_scroll">
480
481                    <div  class="mb-2">
482                      <label for="mce-EMAIL" class="form-label">E-mail<span class="asterisk">*</span> </label>
483                      <input type="email" value="" name="EMAIL" class="required email form-control" id="mce-EMAIL">
484                    </div>
485
486                    <div class="row mb-2">
487                      <div class="col-12 col-md-4">
488                        <div class="mb-3">
489                          <label for="mce-FNAME">Prénom</label>
490                          <input type="text" value="" name="FNAME" class="form-control" id="mce-FNAME">
491                        </div>
492                      </div>
493                      <div class="col-12 col-md-4">
494                        <div class="mb-3">
495                          <label for="mce-LNAME">Nom</label>
496                          <input type="text" value="" name="LNAME" class="form-control" id="mce-LNAME">
497                        </div>
498                      </div>
499                      <div class="col-12 col-md-4">
500                        <div class="mb-3">
501                          <label for="mce-MMERGE5">Profession</label>
502                          <input type="text" value="" name="MMERGE5" class="form-control" id="mce-MMERGE5">
503                        </div>
504                      </div>
505                    </div>
506
507                    <div class="d-flex flex-column mb-3">
508
509                      <div class="mb-2 pb-2">
510                        <div class="h4">Langue</div>
511                        <div class="form-check form-check-inline">
512                          <input type="radio" name="group[30]" class="form-check-input" value="1" id="mce-group[30]-30-0" checked>
513                          <label for="mce-group[30]-30-0" class="form-check-label">Français</label>
514                        </div>
515                        <div class="form-check form-check-inline">
516                          <input type="radio" name="group[30]" class="form-check-input" value="2" id="mce-group[30]-30-1">
517                          <label for="mce-group[30]-30-1" class="form-check-label">Anglais</label>
518                        </div>
519                        <div class="form-check form-check-inline">
520                          <input type="radio" name="group[30]" class="form-check-input" value="4" id="mce-group[30]-30-2">
521                          <label for="mce-group[30]-30-2" class="form-check-label">Allemand</label>
522                        </div>
523                      </div>
524
525                      <div>
526                        <div  class="h4 mb-1">Newsletter</div>
527                        <div class="form-check form-check-inline">
528                          <input type="radio" name="group[34]" class="form-check-input" value="8" id="mce-group[34]-34-0" checked>
529                          <label for="mce-group[34]-34-0" class="form-check-label">Public</label>
530                        </div>
531                        <div class="form-check form-check-inline">
532                          <input type="radio" name="group[34]" class="form-check-input" value="16" id="mce-group[34]-34-1">
533                          <label for="mce-group[34]-34-1" class="form-check-label">Pro</label>
534                        </div>
535                        <div class="form-check form-check-inline">
536                          <input type="radio" name="group[34]" class="form-check-input" value="32" id="mce-group[34]-34-2">
537                          <label for="mce-group[34]-34-2" class="form-check-label">Presse</label>
538                        </div>
539                      </div>
540
541                    </div>
542                    <div id="mce-responses" class="clear mt-3">
543                      <div class="response alert alert-warning" id="mce-error-response" style="display:none"></div>
544                      <div class="response alert alert-success" id="mce-success-response" style="display:none"></div>
545                    </div>
546
547                    <div style="position: absolute; left: -5000px;" aria-hidden="true">
548                      <input type="text" name="b_4a6caf431f879e7480319e146_f757bf97fe" tabindex="-1" value="">
549                    </div>
550
551                    <div class="mb-3">
552                      <input type="submit" value="S'inscrire" name="subscribe" id="mc-embedded-subscribe" class="btn btn-outline-primary mb-2">
553                    </div>
554                  </div>
555                </form>
556              </div>
557              
557<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script>
557
558              
558<script type="text/javascript">
559                (function($) {
560                  window.fnames = new Array();
561                  window.ftypes = new Array();
562                  fnames[0] = 'EMAIL';
563                  ftypes[0] = 'email';
564                  fnames[1] = 'FNAME';
565                  ftypes[1] = 'text';
566                  fnames[2] = 'LNAME';
567                  ftypes[2] = 'text';
568                  fnames[5] = 'MMERGE5';
569                  ftypes[5] = 'text';
570                  fnames[3] = 'MMERGE3';
571                  ftypes[3] = 'text';
572                  fnames[4] = 'MMERGE4';
573                  ftypes[4] = 'text';
574                }(jQuery));
575                var $mcj = jQuery.noConflict(true);
576              </script>
576
577            </div>
578          </div>
579        </div>
580      </div>
581    </div>
582  </div>
583</div><div  class="modal fade" id="login-modal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="login-label" aria-hidden="true">
584  <div  class="modal-dialog modal-dialog-centered modal-md">
585    <div  class="modal-content">
586      <div class="modal-header">
587        <div class="modal-title h2 mb-0 pt-2 pb-1" id="login-label">
588          Connexion Fermée        </div>
589        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
590      </div>
591      <div class="modal-body">
592        <div class="mb-2">
593          <div class="h3 mt-3 lh-sm">
594            Connectez-vous pour réserver vos&nbsp;séances          </div>
595          <div class="h4 mb-1 lh-sm" style="font-size: 1.25rem;">
596            Vous avez un&nbsp;pass, une&nbsp;accréditation, une&nbsp;carte ou une&nbsp;invitation ?          </div>
597                      <div class="opacity-50" style="pointer-events: none;">
598                        <div class="tkt-wrapper"
599    data-component="Ticket/TicketConnect"
600    data-redirect="none"
601    data-cart-url="https://www.giff.ch/panier/"
602    data-checkout-url="https://www.giff.ch/panier/"></div>
603
604<script type="text/template" id="tkt-ticket-tpl">
605    <%
606    const errors = {
607        'screening.start_at': "Les votes seront possibles d\u00e8s le d\u00e9but de la s\u00e9ance",
608        'screening.stop_at': "Les votes seront possibles d\u00e8s la fin de la s\u00e9ance",
609        'needs_scan': "Vous ne pouvez pas voter car votre billet n'a pas \u00e9t\u00e9 contr\u00f4l\u00e9",
610        'not_before': "Les votes ne sont pas encore possibles pour cette s\u00e9ance",
611        'not_after': "Les votes ne sont plus possibles pour cette s\u00e9ance",
612    };
613    %>
614    <% if (tickets?.length > 1) { %>
615        <div class="mb-3">
616            <ul class="nav nav-tabs nav-fill">
617                <% _.sortBy(tickets, t => t.getDisplayName()).map(function (t) {  %>
618                    <li class="nav-item">
619                        <a data-ticket-id="<%= t._id %>"class="nav-link ticket-link <%= t._id === ticket?._id ? 'active' : '' %>">
620                            <%= t.getTypeName() %> -
621                            <%= t.getDisplayName() %>
622                        </a>
623                    </li>
624                <% }) %>
625            </ul>
626        </div>
627    <% } %>
628
629    <% if (ticket) { %>
630
631    <%
632        const bookings = ticket.bookings || [];
633        const pastBookings = bookings.filter(b => b.screening?.isFinished());
634        const futureBookings = bookings.filter(b => !b.screening?.isFinished());
635    %>
636    <div class="tkt-ticket-view">
637        <% if (!ticket.isNew()) { %>
638        <p class="alert alert-info small"><i class="tkt-icon-info-circle"></i>Nous n&#039;émettons pas de billet individuel pour les réservations, votre ticket actuel vous sert de titre d&#039;entrée aux séances réservées.</span></p>
639        <% } else { %>
640        <p class="alert alert-warning small"><i class="tkt-icon-info-circle"></i>Tant que vous n&#039;aurez pas effectué le paiement de votre billet, vous ne pourrez pas effectuer de réservations ou accéder à la projection.</span></p>
641        <% } %>
642
643        <!-- Title -->
644        <div class="mb-3">
645            <h3>
646                <strong>
647                    <%= ticket.getTypeName() %> -
648                    <%= ticket.getDisplayName() %>
649                </strong>
650            </h3>
651        </div>
652
653        <!-- Réservations -->
654        <% if (!ticket.isNew()) { %>
655        <section class="tkt-section tkt-light-section">
656            <% if (!pastBookings.length && !futureBookings.length) { %>
657                <h3>Réservations</h3>
658                <div class="mb-2">
659                    Il n&#039;y a actuellement aucune réservation sur ce billet.                </div>
660            <% } else { %>
661                <% if (futureBookings.length) { %>
662                    <h3>Réservations</h3>
663                    <table class="table table-striped table-hover no-more-tables">
664                        <thead>
665                            <tr>
666                                <th>Date</th>
667                                <th>Réservation</th>
668                                <th>Lieu</th>
669                                <th><i class="tkt-icon-smartphone"></i></th>
670                                <th class="text-right">Action</th>
671                            </tr>
672                        </thead>
673                        <tbody>
674                            <% futureBookings.map(function(b) { %>
675                            <tr>
676                                <td><%= b.screening_start_at.format("DD.MM.YYYY HH[h]mm") %> -
677                                    <%= b.screening_stop_at.format("HH[h]mm") %></td>
678                                <td><%= b.screening.getTitle() %></td>
679                                <td><%= b.screening.cinema_hall.name %></td>
680                                <td class="text-center">
681                                    <% if (b.scanned_at.length) { %>
682                                        <i class="tkt-icon-checkmark"></i>
683                                    <% } %>
684                                </td>
685                                <td>
686                                    <div class="flex-col items-end">
687                                        <% if (b.isCancelable) { %>
688                                            <a href="#" class="btn btn-danger btn-bloc cancel-booking-btn" data-booking-id="<%= b._id %>">
689                                                Annuler                                            </a>
690                                        <% } %>
691                                        <% if (votesConfig?.enabled && (b.vote || !b.screening.opaque?.disable_votes)) { %>
692                                            <% const { votable, reason } = b.isVotable(); %>
693                                            <div
694                                                data-component="Ui/Rating"
695                                                data-score="<%= b.vote?.score || 0 %>"
696                                                data-ticket-id="<%= b.ticket_id %>"
697                                                data-booking-id="<%= b._id %>"
698                                                data-size="24"
699                                                data-step="<%= votesConfig?.step %>"
700                                                data-max="<%= votesConfig?.max_score %>"
701                                                data-disabled-reason="<%= reason ? errors[reason] : '' %>"
702                                            ></div>
703                                            <% if (reason) { %>
704                                                <small>
705                                                    <i class="tkt_icon_warning" />
706                                                    <%= errors[reason] %>
707                                                </small>
708                                            <% } %>
709                                        <% } %>
710                                    </div>
711                                </td>
712                            </tr>
713                            <% }) %>
714                        <tbody>
715                    </table>
716                    <div class="cancelable_booking_err text-danger text-center"></div>
717                <% } %>
718
719                <% if (pastBookings.length) { %>
720                    <h3>Réservations passées</h3>
721                    <table class="table table-striped table-hover no-more-tables">
722                        <thead>
723                            <tr>
724                                <th>Date</th>
725                                <th>Réservation</th>
726                                <th>Lieu</th>
727                                <th><i class="tkt-icon-smartphone"></i></th>
728                                <th></th>
729                            </tr>
730                        </thead>
731                        <tbody>
732                            <% pastBookings.map(function(b) { %>
733                            <tr>
734                                <td><%= b.screening_start_at.format("DD.MM.YYYY HH[h]mm") %> -
735                                    <%= b.screening_stop_at.format("HH[h]mm") %></td>
736                                <td><%= b.screening.getTitle() %></td>
737                                <td><%= b.screening.cinema_hall.name %></td>
738                                <td class="text-center">
739                                    <% if (b.scanned_at.length) { %>
740                                        <i class="tkt-icon-checkmark"></i>
741                                    <% } %>
742                                </td>
743                                <td>
744                                    <% if (votesConfig?.enabled && (b.vote || !b.screening.opaque?.disable_votes)) { %>
745                                        <% const { votable, reason } = b.isVotable(); %>
746                                        <div
747                                            data-component="Ui/Rating"
748                                            data-score="<%= b.vote?.score || 0 %>"
749                                            data-ticket-id="<%= b.ticket_id %>"
750                                            data-booking-id="<%= b._id %>"
751                                            data-size="24"
752                                            data-step="<%= votesConfig?.step %>"
753                                            data-max="<%= votesConfig?.max_score %>"
754                                            data-disabled-reason="<%= reason ? errors[reason] : '' %>"
755                                        ></div>
756                                        <% if (reason) { %>
757                                            <small>
758                                                <i class="tkt_icon_warning" />
759                                                <%= errors[reason] %>
760                                            </small>
761                                        <% } %>
762                                    <% } %>
763                                </td>
764                            </tr>
765                            <% }) %>
766                        <tbody>
767                    </table>
768                    <div class="cancelable_booking_err text-danger text-center"></div>
769                <% } %>
770            <% } %>
771            <a class="btn button w-100" href="<%= program_url %>">
772                Réserver des séances            </a>
773        </section>
774
775        <% } %>
776        <!-- Owner -->
777        <% if (ticket?.hasContactInfo()) { %>
778        <section class="tkt-section tkt-dark-section mt-3">
779            <h3 class="panel-title">Titulaire</h3>
780            <div class="text-center">
781                <% if (ticket.contact?.rfc2397_portrait?.length) { %>
782                    <img class="img-responsive img-thumbnail" src="<%= ticket.contact?.rfc2397_portrait %>" />
783                    <br />
784                <% } %>
785
786                <% if (ticket.contact?.firstname || ticket.contact?.lastname) { %>
787                <h5>
788                    <%= [ticket.contact.firstname, ticket.contact.lastname].filter(v => !!v).join(' ') %>
789                </h5>
790                <% } %>
791
792                <div>
793                    <% if (ticket.contact?.birthdate) { %>
794                        <%= new Date(ticket.contact.birthdate).toLocaleDateString() %>
795                        <br />
796                    <% } %>
797
798                    <% if (ticket.contact?.address?.street) { %>
799                        <%= ticket.contact.address.street %>
800                        <br />
801                    <% } %>
802
803                    <% if (ticket.contact?.address?.zip || ticket.contact?.address?.city) { %>
804                        <%= [ticket.contact.address.zip, ticket.contact.address.city].filter(v => !!v).join(' ') %>
805                        <br />
806                    <% } %>
807
808                    <% if (ticket.contact?.address?.country) { %>
809                        <%= tktCountryDisplay(ticket.contact.address.country) %>
810                        <br />
811                    <% } %>
812
813                    <% if (ticket.contact?.email) { %>
814                        <%= ticket.contact.email %>
815                    <% } %>
816                </div>
817            </div>
818        </section>
819        <% } %>
820
821        <!-- Guests -->
822        <% if (ticket?.hasGuestsInfo()) { %>
823        <section class="tkt-section tkt-dark-section mt-3">
824            <h3 class="panel-title">Invités</h3>
825            <div class="text-center">
826                <% ticket.getGuestsInfo().forEach(guest => { %>
827                    <h5>
828                        <%= [guest.firstname, guest.lastname].filter(v => !!v).join(' ') %><br />
829                        <small><%= guest.email %></small>
830                    </h5>
831                <% }); %>
832            </div>
833        </section>
834        <% } %>
835
836        <% if (ticket.getWalletBalance() > 0) { %>
837        <div class="row">
838            <div class="col">
839                <section class="tkt-section tkt-light-section mt-3">
840                    <div class="panel-heading wallet_info">
841                        <h3 class="panel-title">Portefeuille électronique</h3>
842                    </div>
843                    <div class="panel-body wallet_info text-center">
844                        <div class="text-center">
845                            <h4><%= ticket.getFormattedWalletBalance() %></h4>
846                        </div>
847                    </div>
848                </section>
849            </div>
850        </div>
851        <% } %>
852
853        <div class="row">
854            <div class="col">
855                <section class="tkt-section tkt-light-section mt-3">
856                    <div class="panel-heading">
857                        <h3 class="panel-title">Validité</h3>
858                        <div class="panel-body">
859                            <% if (!ticket.isNew()) { %>
860                            <div class="well text-center">
861                                <% if (ticket.activated_at) { %>
862                                <h5>
863                                Activé le <%= ticket.activated_at.format("LL") %>                                </h5>
864                                <% if (ticket.getActivatedPricingName()) { %>
865                                <p>Tarif : <%= ticket.getActivatedPricingName() %>
866                                    (<%= ticket.getFormattedPriceAndCurrency() %>)
867                                </p>
868                                <% } %>
869                                <% } %>
870                            </div>
871                            <% if (ticket.getExpirationDate()) { %>
872                                <% if (ticket.hasExpired()) { %>
873                                    <div class="text-center alert alert-danger">
874                                        <b>A expiré le <%= ticket.getExpirationDate().format('LL') %> </b>
875                                    </div>
876                                <% } else {%>
877                                    <div class="text-center alert alert-success">
878                                        <b>Valable jusqu'au <%= ticket.getExpirationDate().format('LL') %></b>
879                                        <p>
880                                            <%= ticket.placesAvailable() %>
881                                        </p>
882                                    </div>
883                                <% } %>
884                            <% } %>
885                            <% } else { %>
886                            <div class="text-center alert alert-info w-100">
887                                <b>Ce billet n&#039;a pas encore été activé</b>
888                            </div>
889                            <div id="pricings-list" class="tkt-pricings-list">
890                                <div class="card-header tkt-light-section">
891                                    <h5 class="card-title">
892                                        <b>Activation :</b>
893                                    </h5>
894                                    <table>
895                                        <tr>
896                                            <th>Tarifs</th>
897                                            <th>Prix</th>
898                                        </tr>
899                                        <% Object.entries(ticket.pricings || {}).map(function(entry) {
900                                            const key = entry[0];
901                                            const p = entry[1] || {};
902                                            const onlyOne = Object.keys(ticket.pricings || {}).length === 1;
903                                        %>
904                                        <tr>
905                                            <td>
906                                            <% if ((p.description?.fr || '').length > 0) { %>
907                                                <input class="choose-pass" type="radio" name="user[pass]" value="<%= key %>" <%= onlyOne ? 'checked' : '' %>> <%= p.name?.fr || key %> <i class="tkt-icon-info-circle" data-component="Ui/Tippy" data-tippy-content="<%= p.description.fr %>"></i>
908                                            <% } else { %>
909                                                <input class="choose-pass" type="radio" name="user[pass]" value="<%= key %>" <%= onlyOne ? 'checked' : '' %>> <%= p.name?.fr || key %>
910                                            <% } %>
911                                            </td>
912                                            <td><%= Object.keys(p.price || {})[0] + " " + parseFloat(Object.values(p.price || {})[0] || 0).toFixed(2) %></td>
913                                        </tr>
914                                        <% }) %>
915                                    </table>
916                                </div>
917                            </div>
918
919                            <div class="alert alert-danger ticket-pay-error d-none" role="alert"></div>
920
921                            <div class="d-flex justify-content-between pt-3">
922                                <button class="btn bg-success add_to_cart-btn">
923                                    <i class="tkt-icon-credit-card"></i> Payer votre <%= ticket.getTypeName() %>                                </button>
924                                <button class="btn bg-dark forget-ticket-btn align-items-end">
925                                    <i class="tkt-icon-sign-out"></i> Déconnexion                                </button>
926                            </div>
927                            <% } %>
928                        </div>
929                    </div>
930                </section>
931            </div>
932        </div>
933        <% if (!ticket.isNew() && ticket.isForgettable) { %>
934        <div class="row mt-3">
935            <div class="col">
936                <button class="btn button forget-ticket-btn w-100">
937                    <i class="tkt-icon-log-out"></i> Retirer ce billet de mon navigateur                </button>
938            </div>
939        </div>
940        <% } %>
941    </div>
942    <% } %>
943</script>
943
944
945<script type="text/template" id="tkt-ticket-connect-tpl">
946    <% if (!ticket)  { %>
947    <div class="tkt-ticket-connect">
948        <div class="connect-panel">
949            <div class="ticket_connect">
950                <div>
951                    Entrez votre <span class="tkt-ticketid_ticket">Ticket</span><span class="tkt-ticketid_id">ID</span>                </div>
952                <div class="col">
953                    <div class="row mt-5 input-pass">
954                        <input id="pass-id" type="number"
955                            class="tkt-input input-invert form-control text-center pass-number-input"
956                            placeholder="123456" maxlength="6" />
957                        <p class="minus">-</p>
958                        <input id="pass-code" type="password"
959                            class="tkt-input input-invert form-control text-center pass-key-input"
960                            placeholder="abcdef" maxlength="6" />
961                    </div>
962                </div>
963                <div class="row">
964                    <div class="col text-center">
965                        <div class="error pass-error d-none text-center text-danger"></div>
966                        <button class="btn btn-primary button login-btn connect-btn mt-5 mb-3">
967                            <i class="tkt-icon-log-out"></i> Connexion                        </button>
968                    </div>
969                </div>
970                <hr />
971                <div>
972                    Votre <span class="tkt-ticketid_ticket">Ticket</span><span class="tkt-ticketid_id">ID</span> est composé d'un identifiant de 6 chiffres suivi d'un code alphanumérique et se trouve sur votre billet, pass ou accréditation.                </div>
973            </div>
974        </div>
975    </div>
976    <% } %>
977
978    <%
979    jQuery(document).ready(function($) {
980        $("#pass-id").keyup(function() {
981            if (this.value.length == this.maxLength) {
982                $('#pass-code').focus();
983            }
984        });
985    });
986    %>
987</script>
987
988                        </div>
989                  </div>
990        <hr class="row">
991        <div class="mb-2">
992          <div  class="h2 mb-1">
993            Vous êtes accrédité·e?          </div>
994          <div class="h4 mb-1">
995            Connectez-vous avec votre compte Eventival          </div>
996          <p>
997            Vous pourrez ainsi accéder aux services du Geneva Digital Market et réserver vos séances.          </p>
998              <div  class="ev_waiting-btn mb-3 d-inline-block d-none" data-open_date="2025-08-26T09:00:00.000+02:00" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Connexion à partir du  August 26, 09:00">
999      <button class="btn btn-outline-primary btn-eventival disabled"> <img src="https://www.giff.ch/wp-content/plugins/db-login/medias/eventival_logo_svg_dark.svg" class="icon-eventival-btn logo_eventival_dark mr-2 mt-n1 ms-n1" alt="Log-in with Eventival" width="20" height="20"><span>
1000          Connectez-vous avec Eventival        </span> </button>
1001    </div>
1002    <div  class="ev_login-btn mb-3 d-none"> <a href="https://account.eventival.com/auth/realms/Eventival/protocol/openid-connect/auth?client_id=ev-festival-giff&response_type=code&redirect_uri=https%3A%2F%2Fwww.giff.ch%2Flog-in%2F%3Flogin%3Ddbl-user&scope=openid%20email" class="btn btn-outline-primary btn-eventival disabled">
1003      <img src="https://www.giff.ch/wp-content/plugins/db-login/medias/eventival_logo_svg_dark.svg" class="icon-eventival-btn logo_eventival_dark mr-2 mt-n1 ms-n1" alt="Log-in with Eventival" width="20" height="20">
1004      <span>
1005                Connexion fermée      </span>
1006    </a>
1007  </div>
1008  <div  class="ev_logout-btn mb-3 d-none">
1009    <button type="button"
1010      class="btn btn-outline-primary btn-eventival"
1011      onclick="document.cookie = 'dbl_user=; Max-Age=0; path=/;'; window.location.reload();">
1012      <img src="https://www.giff.ch/wp-content/plugins/db-login/medias/eventival_logo_svg_dark.svg" class="icon-eventival-btn logo_eventival_dark mr-2 mt-n1 ms-n1" alt="Log-out with Eventival" width="20" height="20">
1013      <span>
1014        Déconnexion      </span>
1015    </button>
1016  </div>
1017  <div class='alert alert-warning d-none' role='alert' id='login-closed'>Le GDM ouvrira le </div><div class='alert alert-warning d-none' role='alert' id='eventival'>Désolé, nous rencontrons actuellement un problème technique avec notre système. Veuillez réessayer de vous connecter dans quelques minutes. Si le problème persiste, veuillez nous contacter à : <a href="mailto:[email protected]" class="text-bg">[email protected]</a></div><div class='alert alert-warning d-none' role='alert' id='setup-account'>Désolé, il semble que vous n’ayez pas de compte ou que vous ne disposiez pas des autorisations nécessaires pour accéder à la plateforme en ligne Market. Veuillez nous contacter à : <a href="mailto:[email protected]">[email protected]</a>.</div><div class='alert alert-warning d-none' role='alert' id='accreditation'>Désolé, vous n’avez pas l’accréditation requise pour vous connecter. Veuillez demander votre accréditation via <a href="https://www.giff.ch/giff-pro/accreditation/">ce lien</a>, ou contactez-nous à: <a href="mailto:[email protected]" class="text-bg">[email protected]</a></div>  
1017<script>
1018
1019  </script>
1019
1020        </div>
1021      </div>
1022    </div>
1023  </div>
1024</div>
1025<script type="speculationrules">
1026{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/giff\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
1027</script>
vendor: 1 bytes, line 1027
1027
1028<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/plugins/db-login/assets/js/date.js?ver=1790258750" id="date-js"></script>
vendor: 1 bytes, line 1028
1028
1029<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/plugins/db-login/assets/js/cookie.js?ver=1790258750" id="cookie-js"></script>
vendor: 1 bytes, line 1029
1029
1030<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/plugins/db-login/assets/js/user.js?ver=1790258750" id="user-js"></script>
vendor: 1 bytes, line 1030
1030
1031<script id="user-js-after">
1032window.addEventListener('DOMContentLoaded', (event) => {
1033    setup_user();
1034  })
1035</script>
vendor: 1 bytes, line 1035
1035
1036<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/plugins/db-login/assets/js/access.js?ver=1790258750" id="access-js"></script>
vendor: 1 bytes, line 1036
1036
1037<script id="access-js-after">
1038document.addEventListener('DOMContentLoaded', (event) => {
1039  //access_projects_nav();
1040  //access_meetings_nav();
1041  //access_whoshow_user_data();
1042  update_login_header_btn();
1043  tktConnect()
1044  logout_user()
1045  })
1046document.addEventListener("DOMContentLoaded", (event) => {
1047        display_popup_on_error()
1048    })
1049window.addEventListener('DOMContentLoaded', (event) => {
1050  access_dbl_login();
1051  });
1052</script>
vendor: 1 bytes, line 1052
1052
1053<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/plugins/db-login/assets/js/db-cinema.js?ver=1790258750" id="dbCinema-js"></script>
vendor: 1 bytes, line 1053
1053
1054<script id="rocket-browser-checker-js-after">
1055"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}();
1056</script>
vendor: 1 bytes, line 1056
1056
1057<script id="rocket-preload-links-js-extra">
1058var RocketPreloadLinksConfig = {"excludeUris":"\/user\/|\/en\/user\/|\/giff-tv\/|\/en\/giff-tv\/|\/gdm\/whos-who\/|\/en\/gdm\/whos-who\/|\/whos-who-2024\/|\/en\/whos-who-2024\/|\/gdm\/personal-agenda\/|\/en\/gdm\/personal-schedule\/|\/profile\/|\/en\/profile\/|\/gdm\/my-meeting_requests\/|\/en\/gdm\/my-meeting_requests\/|\/(?:.+\/)?feed(?:\/(?:.+\/?)?)?$|\/(?:.+\/)?embed\/|\/(index.php\/)?(.*)wp-json(\/.*|$)|\/refer\/|\/go\/|\/recommend\/|\/recommends\/","usesTrailingSlash":"1","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php|html|htm","siteUrl":"https:\/\/www.giff.ch","onHoverDelay":"100","rateThrottle":"3"};
1059</script>
vendor: 1 bytes, line 1059
1059
1060<script id="rocket-preload-links-js-after">
1061(function() {
1062"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareUrl(t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run();
1063}());
1064</script>
vendor: 1 bytes, line 1064
1064
1065<script src="https://www.giff.ch/wp-content/themes/giff/assets/vendors/bootstrap-5.1.0/dist/js/bootstrap.bundle.min.js?ver=5.1.2" id="bootstrap-bundle-js-js"></script>
vendor: 1 bytes, line 1065
1065
1066<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/main.js?ver=1790258750" id="theme-js-js"></script>
vendor: 1 bytes, line 1066
1066
1067<script src="https://www.giff.ch/wp-content/themes/giff/assets/vendors/listjs-2.3.1/listjs.min.js?ver=2.3.2" id="listjs-js"></script>
vendor: 1 bytes, line 1067
1067
1068<script src="https://www.giff.ch/wp-content/themes/giff/assets/vendors/fuse.min.js?ver=6.6.3" id="fuse-js"></script>
vendor: 1 bytes, line 1068
1068
1069<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/utility_function.js?ver=1790258750" id="utility_function-js"></script>
vendor: 1 bytes, line 1069
1069
1070<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/data.js?ver=1790258750" id="data-js"></script>
vendor: 1 bytes, line 1070
1070
1071<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/construct.js?ver=1790258750" id="construct-js"></script>
vendor: 1 bytes, line 1071
1071
1072<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/search.js?ver=1790258750" id="search-js"></script>
vendor: 1 bytes, line 1072
1072
1073<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/filtering.js?ver=1790258750" id="filtering-js"></script>
vendor: 1 bytes, line 1073
1073
1074<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/ma_selection.js?ver=1790258750" id="ma_selection-js"></script>
vendor: 1 bytes, line 1074
1074
1075<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/express_checkout.js?ver=1790258750" id="express_checkout-js"></script>
vendor: 1 bytes, line 1075
1075
1076<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/filtering_prog.js?ver=1790258750" id="filtering_prog-js"></script>
vendor: 1 bytes, line 1076
1076
1077<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/json_loader.js?ver=1790258750" id="json_loader-js"></script>
vendor: 1 bytes, line 1077
1077
1078<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/tocome.js?ver=1790258750" id="tocome-js"></script>
vendor: 1 bytes, line 1078
1078
1079<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/giff-tv.js?ver=1790258750" id="giff-tv-js"></script>
vendor: 1 bytes, line 1079
1079
1080<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/tkt.js?ver=1790258750" id="tkt_script-js"></script>
vendor: 1 bytes, line 1080
1080
1081<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/add-to-calendar.js?ver=1790258750" id="add-to-calendar-js"></script>
vendor: 1 bytes, line 1081
1081
1082<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/video.js?ver=1790258750" id="block-video-js"></script>
1082
1083    
1083<script type="text/template" id="tkt-booking-form-dates-tpl">
1084        <% screenings = _.filter(screenings, function (s) { return s.stop_at > new Date(); }); %>
1085<% if (screenings.length > 1) { %>
1086<%
1087    var m = {};
1088    _.forEach(screenings, function(s) {
1089        var day = s.start_at.format("dddd D MMMM");
1090        if (!m[day])
1091            m[day] = [];
1092        m[day].push(s);
1093    });
1094
1095
1096    var dates = [];
1097    _.forEach(screenings, function(s) {
1098        var day = s.start_at.format("YYYY-MM-DD");
1099        if (dates.indexOf(day) === -1)
1100            dates.push(day);
1101    });
1102%>
1103
1104<div class="tkt-wrapper">
1105    <div class="row">
1106        <div class="col">
1107            <span>
1108                Veuillez choisir la date désirée :            </span>
1109            <div class="days-wrapper">
1110                <% if (Object.keys(m).length > 6) { %>
1111                    <input
1112                        id="calendar"
1113                        type="text"
1114                        class="tkt-input form-control data-field"
1115                        data-component="Form/Calendar"
1116                        required
1117                        data-alt-format="l j F" 
1118                        data-enable="<%= dates.join(',') %>"
1119                        data-inline="true"
1120                    />
1121
1122                <% } else { %>
1123                    <% _.forEach(Object.keys(m), function(day) { %>
1124                    <span
1125                        class="tkt-badge tkt-light-badge day"
1126                        data-day="<%= day %>"
1127                        data-ymd="<%= m[day][0].start_at.format('YYYY-MM-DD') %>"
1128                        data-screening_id="<%= _.map(m[day], function (s) { return s._id; }).join(',') %>">
1129                        <%= day %>
1130                    </span>
1131                    <% }) %>
1132                <% } %>
1133            </div>
1134
1135            <br/>
1136
1137            <span>
1138                Veuillez choisir l&#039;heure désirée :            </span>
1139            <div class="dates-wrapper">
1140                <% _.forEach(m, function(screenings, day) { %>
1141                    <% _.forEach(screenings, function(s) { %>
1142                    <span
1143                        class="tkt-badge tkt-light-badge date"
1144                        data-day="<%= day %>"
1145                        data-ymd="<%= s.start_at.format('YYYY-MM-DD') %>"
1146                        data-screening_id="<%= s._id  %>"
1147                    >
1148                        <%= s.start_at.format("LT") %>
1149
1150                        <% if (s.opaque) { %>
1151                            <% if (s.opaque.version) { %>
1152                        <%= (' - ' + s.opaque.version) %>
1153                            <% } %>
1154                            <% if (s.opaque._3d) { %>
1155                        <%= ' - 3D' %>
1156                            <% } %>
1157                        <% } %>
1158                        <%= ' - ' + s.cinema_hall.name %>
1159                    </span>
1160                    <% }) %>
1161                <% }) %>
1162            </div>
1163
1164            <br/>
1165
1166        </div>
1167    </div>
1168</div>
1169<% } else if (screenings.length == 1) { %>
1170<span data-screening_id="<%= screenings[0]._id %>" class="date single-date">
1171    <%= screenings[0].start_at.format("dddd D MMMM") %> à <%= screenings[0].start_at.format("LT") + ' - ' + screenings[0].cinema_hall.name %></span>
1172<% } else { %>
1173<span>Il n&#039;y a pas de billetterie disponible pour cet événement.</span>
1174<% } %>
1175    </script>
1175
1176    
1176<script type="text/template" id="tkt-booking-form-pricings-tpl">
1177        
1178<%
1179    var uiLang = 'fr';
1180    var localize = function (obj) {
1181        return (TKTLib && TKTLib.StringsHelper)
1182            ? (TKTLib.StringsHelper.getLocalizedValue(obj, uiLang) || '')
1183            : '';
1184    };
1185%>
1186<% const availabilities = bookability?.availabilities; %>
1187<% const eligible_types = (bookability?.eligible_types || screening?.eligible_types || []).filter(t => t._id != 'one-time-pass'); %>
1188<% const sellable_types = eligible_types.filter(t => !!t.sellable); %>
1189<%
1190    const sorted_pricings = _.chain((screening && screening.pricings) ? screening.pricings : {})
1191        .map(function (pricing, key) {
1192            const opaque = pricing && pricing.opaque ? pricing.opaque : {};
1193            const weight = parseFloat(opaque.eshop_sort_weight);
1194            return {
1195                key,
1196                pricing,
1197                weight: isFinite(weight) ? weight : Number.POSITIVE_INFINITY
1198            };
1199        })
1200        .sortBy(function (item) { return item.key; })
1201        .sortBy(function (item) { return item.weight; })
1202        .value();
1203%>
1204<%
1205    const ticket_cannot_book_explanation = function (_id) {
1206        bookability.tickets = bookability.tickets || {};
1207        return bookability.tickets[_id]?.cannot_book_explanation;
1208    }
1209%>
1210
1211<div class="tkt-wrapper">
1212    <% if (_.keys(screening.pricings).length) { %>
1213        <% if ('map_only_bookings' in screening.opaque && screening.opaque.map_only_bookings) { %>
1214            <div class="row">
1215                <div class="col">
1216                    <iframe width="100%" style="min-height: 500px" frameborder="0" title="Plan de salle" src="<%= TKTLib.EshopUrlHelper.getScreeningMapUrl(screening._id) %>"></iframe>
1217                </div>
1218            </div>
1219        <% } else if (show_pricings) { %>
1220            <% if (!availabilities || availabilities.me['right-now']['one-time-pass'] > 0) { %>
1221                <h4>Acheter des places</h3>
1222                <div class="pricings-form">
1223                    <div class="row">
1224                        <div class="col">
1225                            <span>
1226                                Saisissez le nombre de place(s) que vous souhaitez ajouter à votre panier :                            </span>
1227                        </div>
1228                    </div>
1229                    <% _.each(sorted_pricings, function(item) { const p = item.pricing; const key = item.key; const cannot_book = p.cannot_book_reason; %>
1230                    <div class="row pricing-row<%= cannot_book ? ' unavailable text-muted' : '' %>" data-pricing-wrapper="<%= key %>"<%= cannot_book ? ' style="opacity:0.55"' : '' %>>
1231                        <div class="col">
1232                            <% if (cannot_book) { %>
1233                            <span class="tkt-badge tkt-badge-split flex-rev-on-mobile">
1234                                <span class="tkt-badge-part tkt-light-badge text-center">
1235                                    <span class="pricing-qty">0</span>
1236                                    x
1237                                    <span class="pricing-name">
1238                                        <% var pricing_name = localize(p.name); %>
1239                                        <%= pricing_name %> :
1240                                        <% var pricing_description = localize(p.description); %>
1241                                        <% if (pricing_description) { %>
1242                                            <span class="d-none tkt-tippy-content" id="tippy-pricing-desc-<%= key %>"><%= pricing_description %></span>
1243                                            <i class="tkt-icon-info" data-component="Ui/Tippy" data-tippy-source="#tippy-pricing-desc-<%= key %>" role="button" tabindex="0" aria-label="Plus d&#039;informations"></i>
1244                                        <% } %>
1245                                    </span>
1246                                    <span class="pricing-price">
1247                                        <% if (p.variable_price) { %>
1248                                            <% var minAmtU = p.min_price && p.min_price.CHF; %>
1249                                            <% if (minAmtU != null) { %>
1250                                                dès <%= typeof minAmtU.toFixed === 'function' ? minAmtU.toFixed(2) : Number(minAmtU).toFixed(2) %> CHF                                            <% } else { %>
1251                                                Prix libre                                            <% } %>
1252                                        <% } else { %>
1253                                        <%= p.price.CHF.toFixed(2) %> CHF                                        <% } %>
1254                                    </span>
1255                                    <br><small class="text-danger"><%= cannot_book %></small>
1256                                </span>
1257                            </span>
1258                            <input type="hidden" data-pricing="<%= key %>
1258" class="input pricing-input" value="0"/>
1259                            <% } else { %>
1260                            <span class="tkt-badge tkt-badge-split flex-rev-on-mobile tkt-badge-plus-minus">
1261                                <span class="tkt-badge-part tkt-grey-badge tkt-minus-btn text-center">-</span>
1262                                <span class="tkt-badge-part tkt-light-badge text-center">
1263                                    <span class="pricing-qty">
1264                                        0
1265                                    </span>
1266                                    x
1267                                    <span class="pricing-name">
1268                                        <% var pricing_name = localize(p.name); %>
1269                                        <%= pricing_name %> :
1270                                        <% var pricing_description = localize(p.description); %>
1271                                        <% if (pricing_description) { %>
1272                                            <span class="d-none tkt-tippy-content" id="tippy-pricing-desc-<%= key %>"><%= pricing_description %></span>
1273                                            <i class="tkt-icon-info" data-component="Ui/Tippy" data-tippy-source="#tippy-pricing-desc-<%= key %>" role="button" tabindex="0" aria-label="Plus d&#039;informations"></i>
1274                                        <% } %>
1275                                    </span>
1276                                    <span class="pricing-price">
1277                                        <% if (p.variable_price) { %>
1278                                            <% var minAmt = p.min_price && p.min_price.CHF; %>
1279                                            <% if (minAmt != null) { %>
1280                                                dès <%= typeof minAmt.toFixed === 'function' ? minAmt.toFixed(2) : Number(minAmt).toFixed(2) %> CHF                                            <% } else { %>
1281                                                Prix libre                                            <% } %>
1282                                        <% } else { %>
1283                                        <%= p.price.CHF.toFixed(2) %> CHF                                        <% } %>
1284                                    </span>
1285                                </span>
1286                                <span class="tkt-badge-part tkt-dark-badge tkt-plus-btn text-center">+</span>
1287                            </span>
1288                            <input type="hidden" data-pricing="<%= key %>" class="input pricing-input" value="0"/>
1289                            <% if (p.variable_price) { %>
1290                            <% var vpMin = (function(){ var m = p.min_price && p.min_price.CHF; if (m == null) return 0; return typeof m.toFixed === 'function' ? Number(m) : Number(m); })(); %>
1291                            <% var vpDefault = (function(){ var pr = p.price.CHF; var n = pr == null ? (vpMin > 0 ? vpMin : '') : (typeof pr.toFixed === 'function' ? Number(pr) : Number(pr)); if (vpMin > 0 && n !== '' && n < vpMin) return vpMin; return n; })(); %>
1292                            <div class="pricing-sale-price-wrap mt-2" data-pricing="<%= key %>" style="display:none;">
1293                                <label class="small mb-0 pricing-sale-price-label" for="pricing-sale-price-<%= key %>">
1294                                    Prix payé :
1295                                </label>
1296                                <div class="input-group input-group-sm pricing-sale-price-group">
1297                                    <div class="input-group-prepend">
1298                                        <span class="input-group-text">CHF</span>
1299                                    </div>
1300                                    <input
1301                                        type="number"
1302                                        step="0.05"
1303                                        <% if (vpMin > 0) { %>min="<%= vpMin %>"<% } %>
1304                                        class="form-control pricing-sale-price"
1305                                        id="pricing-sale-price-<%= key %>"
1306                                        data-pricing="<%= key %>"
1307                                        data-min-price="<%= vpMin %>"
1308                                        value="<%= vpDefault %>"
1309                                        onfocus="this.select()"
1310                                    />
1311                                </div>
1312                                <small class="pricing-sale-price-hint text-danger d-none" aria-live="polite"></small>
1313                            </div>
1314                            <% } %>
1315                            <% if (p.rules && p.rules.external_voucher) { %>
1316                            <div class="external-voucher-fields mt-2" data-pricing="<%= key %>" data-provider="<%= p.rules.external_voucher %>" style="display:none">
1317                                <label class="d-block small mb-1"><%= p.rules.external_voucher === 'procinema' ? "Saisissez le code de votre bon ProCin\u00e9ma" : "Saisissez le code de votre bon" %></label>
1318                                <div class="external-voucher-codes"></div>
1319                            </div>
1320                            <% } %>
1321                            <% } %>
1322                        </div>
1323                    </div>
1324                    <% }) %>
1325                    <div class="row">
1326                        <div class="col">
1327                            <div class="error pricings-error d-none"></div>
1328                            <button class="button add-to-cart-btn active" >
1329                                Ajouter à mon panier                            </button>
1330                        </div>
1331                    </div>
1332                </div>
1333            <% } else { %>
1334                <% const otp_messages = bookability?.one_time_pass_messages; %>
1335                <% if (otp_messages && otp_messages.parts && otp_messages.parts.length) { %>
1336                    <% _.each(otp_messages.parts, function(part) { %>
1337                    <h5 class="no-one-time-pass-message"><%= part %></h5>
1338                    <% }); %>
1339                <% } else if (availabilities && availabilities['me']['from-now']['one-time-pass'] > 0) { %>
1340                    <h5 class="no-one-time-pass-message">
1341                        Il n&#039;est pas encore possible d&#039;acheter des tickets en ligne pour cette séance.                    </h5>
1342                <% } else if (availabilities && availabilities['me']['absolute']['one-time-pass'] > 0) { %>
1343                    <h5 class="no-one-time-pass-message">
1344                        Tickets disponibles uniquement sur place                    </h5>
1345                <% } else { %>
1346                    <h5 class="no-one-time-pass-message">
1347                        Il n&#039;est pas possible d&#039;acheter des tickets en ligne pour cet événement.                    </h5>
1348                <% } %>
1349            <% } %>
1350        <% } %>
1351        <br/>
1352    <% } %>
1353
1354    <% if (show_ticket_id && screening.opaque && (!('map_only_bookings' in screening.opaque && screening.opaque.map_only_bookings)) && eligible_types.length) { %>
1355    <h4>Réserver des places sur vos billets</h3>
1356
1357    <div class="book-panel">
1358        <%
1359            account_tickets.filter(ticket => !ticket.isOneTimePass() && ticket.canBook(screening)).concat(
1360                connected_tickets.filter(ticket => !ticket.isOneTimePass()),
1361                account_tickets.filter(ticket => !ticket.isOneTimePass() && !ticket.canBook(screening)),
1362            ).map(ticket => {
1363        %>
1364        <div class="ticket-wrapper" data-ticket-id="<%= ticket._id %>">
1365            <div class="row">
1366                <div class="col col-auto ticket-infos">
1367                    <a class="btn btn-outline btn-sm text-left" target="_blank" href="<%= ticket.getTicketViewUrl() %>">
1368                        <i class="tkt-icon-tag"></i>
1369                        <b><%= ticket.getTypeName() %></b>
1370                        - <%= ticket.getDisplayName() %>
1371                    </a>
1372                    <% if (ticket.hasBooked(screening)) { %>
1373                    <div class="already-booked">
1374                        <small data-ticket-id="<%= ticket._id %>">
1375                            <b>Réservation pour cette séance avec ce billet : <%= ticket.getBookingsFor(screening)?.length || 0 %></b>
1376                        </small>
1377                    </div>
1378                    <% } %>
1379                </div>
1380                <div class="col text-right book-btns">
1381                    <% if (ticket.canBook(screening)) { %>
1382                        <button data-ticket-id="<%= ticket._id %>" class="button book-btn<%= ticket.hasBooked(screening) ? '-more' : '' %> active" >
1383                            <i class="tkt-icon-plus"></i>
1384                            <% if (ticket.hasBooked(screening)) { %>
1385                                Réserver une place de plus sur ce billet                            <% } else { %>
1386                                Réserver une place sur ce billet                            <% } %>
1387                        </button>
1388                    <% } else { %>
1389                    <small data-ticket-id="<%= ticket._id %>" class="cannot-book-explanation">
1390                        <i><%= ticket_cannot_book_explanation(ticket._id) %></i>
1391                    </small>
1392                    <% } %>
1393                </div>
1394            </div>
1395            <div class="row">
1396                <div class="col text-right">
1397                    <small class="success book-form-success d-none text-success pl-2">
1398                        Votre place a bien été réservée.                    </small>
1399                </div>
1400            </div>
1401            <div class="row">
1402                <div class="col text-right">
1403                    <small class="book-form-error d-none text-danger pl-2">
1404                    </small>
1405                </div>
1406            </div>
1407        </div>
1408        <% }) %>
1409    </div>
1410
1411    <div class="pass-form mt-3">
1412        <div class="connect-panel">
1413            <div class="ticket_connect">
1414                <div class="row">
1415                    <div class="col">
1416                        <span class="pass-title">
1417                            Entrez votre <span class="tkt-ticketid_ticket">Ticket</span><span class="tkt-ticketid_id">ID</span>
1418                            <a href="" class="show-connect-panel-form">Ajoutez-le</a> pour réserver.<br/>
1419                    </span>
1420                    </div>
1421                </div>
1422                <div class="connect-panel-form d-none">
1423                    <div class="col">
1424                        <div class="row mt-5 input-pass">
1425                            <input id="pass-id" type="number" class="tkt-input input-invert form-control text-center pass-number-input" placeholder="123456" maxlength="6"/>
1426                            <p class="minus">-</p>
1427                            <input id="pass-code" type="password" class="tkt-input input-invert form-control text-center pass-key-input" placeholder="abcde" maxlength="6"/>
1428                        </div>
1429                    </div>
1430
1431                    <div class="row">
1432                        <div class="col text-center">
1433                            <div class="error pass-error d-none text-center text-danger"></div>
1434                            <button class="btn btn-primary button login-btn connect-btn mt-5 mb-3">
1435                                <i class="tkt-icon-sign-in-alt"></i> Connexion                            </button>
1436                        </div>
1437                    </div>
1438                    <hr>
1439                    <div>
1440                    Votre <span class="tkt-ticketid_ticket">Ticket</span><span class="tkt-ticketid_id">ID</span> est composé d'un identifiant de 6 chiffres suivi d'un code alphanumérique et se trouve sur votre billet, pass ou accréditation.                    </div>
1441                    <br>
1442                </div>
1443            </div>
1444                        <% if (sellable_types.length > 0) { %>
1445            <div class="row">
1446                <div class="col mt-3">
1447                    <div class="buy-pass-link">
1448                        <span>Acheter un abonnement</span>
1449                        <ul class="eligible-types-list">
1450                        <% sellable_types.map(function (t) { %>
1451                        <li class="eligible-type">
1452                            <span class="type-name">
1453                                <i class="tkt-icon-ticket"></i>
1454                                <a href="https://www.giff.ch/billetterie/?selected=<%= t._id %>" class="type-link">
1455                                    <%= t.name.fr %>
1456                                </a>
1457                            </span>
1458                        </li>
1459                        <% }); %>
1460                        </ul>
1461                    </div>
1462                </div>
1463            </div>
1464            <% } %>
1465                    </div>
1466    </div>
1467    <% } %>
1468
1469</div>
1470    </script>
1470
1471    
1471<script type="text/template" id="tkt-booking-form-success-tpl">
1472        <div class="tkt-wrapper">
1473    <div class="row">
1474        <div class="col">
1475            <h3 class="success-title">
1476                Merci, votre commande est réservée dans votre panier pour 30 minutes.            </h3>
1477            <div class="float-right text-right">
1478                <a href="<%= cart_url %>" class="button show-cart-btn active" >
1479                    Accéder au panier                </a>
1480                <div class="continue-shopping" >
1481                    <a href="<%= program_url %>">Continuer ma visite</a>
1482                </div>
1483            </div>
1484        </div>
1485    </div>
1486</div>
1487    </script>
1487
1488
1489        
1489<script>
1490            (function () {
1491                var jq = window.tktjQuery || window.jQuery;
1492                if (typeof jq === "function") {
1493                    /* Restore WP jQuery if a theme snippet (MailChimp noConflict(true))
1494                       or a CMP removed the globals after jquery.js ran. */
1495                    window.jQuery = jq;
1496                    window.$ = jq;
1497                }
1498            })();
1499            // moment locale must be injected globally because it's needed
1500            // before the config initialization
1501            window.moment_locale = "fr_FR";
1502            window.moment_timezone = "Europe/Zurich";
1503            window.tkt_config = {
1504                "version": "1",
1505                "base_url": "https://www.giff.ch/",
1506                "engine_uri": "https://giff-engine.ticketack.com/",
1507                "eshop_uri": "https://giff.ticketack.com/",
1508                "api_key": "c5415263-df61-4835-80d0-eedaacf64572",
1509                "salepoint_id": "",
1510                "cashregister_id": "",
1511                "edition": "2026",
1512                "program_url": "https://www.giff.ch/programme/",
1513                "ticket_view_url": "https://www.giff.ch/billetterie/ticket/",
1514                "shop_url": "",
1515                "cart_url": "https://www.giff.ch/panier/",
1516                "cart_reset_url": "https://giff.ticketack.com/cart/reset",
1517                "checkout_url": "https://www.giff.ch/panier/",
1518                "login_url": "",
1519                "buy_pass_url": "https://www.giff.ch/billetterie/",
1520                "registration_url": "",
1521                "user_account_url": "",
1522                "privacy_policy_url": "https://www.giff.ch/politique-de-confidentialite/",
1523                "terms_conditions_url": "https://www.giff.ch/billetterie/conditions-de-vente/",
1524                "eshop_registration_enabled": false,
1525                "buyer_requested_fields": ["firstname","lastname","email","age","zip"],
1526                "buyer_required_fields": ["firstname","lastname","email","age","zip"],
1527                "otp_requested_fields": [],
1528                "otp_required_fields": [],
1529                "lang": "fr",
1530                "i18n": {
1531    "Veuillez choisir au moins un billet": "Veuillez choisir au moins un billet",
1532    "Veuillez remplir les deux champs": "Veuillez remplir les deux champs",
1533    "Les informations que vous avez saisies sont invalides": "Les informations que vous avez saisies sont invalides",
1534    "Une erreur est survenue. Veuillez r\u00e9-essayer ult\u00e9rieurement.": "Une erreur est survenue. Veuillez r\u00e9-essayer ult\u00e9rieurement.",
1535    "Vous ne pouvez pas r\u00e9server de place pour cette s\u00e9ance avec votre abonnement.": "Vous ne pouvez pas r\u00e9server de place pour cette s\u00e9ance avec votre abonnement.",
1536    "Vous ne pouvez pas r\u00e9server une place de plus pour cette s\u00e9ance avec votre abonnement.": "Vous ne pouvez pas r\u00e9server une place de plus pour cette s\u00e9ance avec votre abonnement.",
1537    "Veuillez choisir un tarif": "Veuillez choisir un tarif",
1538    "Votre panier a \u00e9t\u00e9 mis \u00e0 jour": "Votre panier a \u00e9t\u00e9 mis \u00e0 jour",
1539    "Code promo invalide": "Code promo invalide",
1540    "Impossible d'utiliser ce code promo": "Impossible d'utiliser ce code promo",
1541    "Le code promo a bien \u00e9t\u00e9 pris en compte": "Le code promo a bien \u00e9t\u00e9 pris en compte",
1542    "Vous disposez de": "Vous disposez de",
1543    "sur votre porte monnaie \u00e9lectronique": "sur votre portefeuille \u00e9lectronique",
1544    "Montant trop \u00e9lev\u00e9": "Montant trop \u00e9lev\u00e9",
1545    "Portefeuille appliqu\u00e9 avec succ\u00e8s": "Portefeuille appliqu\u00e9 avec succ\u00e8s",
1546    "Impossible d'utiliser votre portefeuille": "Impossible d'utiliser votre portefeuille",
1547    "title": "Nom",
1548    "name": "Nom",
1549    "firstname": "Pr\u00e9nom",
1550    "lastname": "Nom",
1551    "email": "E-mail",
1552    "password": "Mot de passe",
1553    "address": "Adresse",
1554    "street": "Rue",
1555    "zip": "Code postal",
1556    "city": "Ville",
1557    "country": "Pays",
1558    "phone": "T\u00e9l\u00e9phone",
1559    "cellphone": "T\u00e9l\u00e9phone portable",
1560    "email2": "Confirmation e-mail",
1561    "company": "Entreprise",
1562    "conditions": "Conditions",
1563    "comment": "Commentaires",
1564    "photo": "Photo",
1565    "gift_message": "Message cadeau",
1566    "Ticket": "Ticket",
1567    "birthdate": "Date de naissance",
1568    "rfc2397_portrait": "Photo",
1569    "age": "\u00c2ge",
1570    "sex": "Sexe",
1571    "language": "Langue",
1572    "Les adresses e-mail ne correspondent pas.": "Les adresses e-mail ne correspondent pas.",
1573    "ENOTSUP": "n'est pas support\u00e9",
1574    "ENOPROP": "est manquant",
1575    "EDUPLICATE": "existe d\u00e9j\u00e0",
1576    "EISNOTSTRING": "n'est pas une chaine de caract\u00e8re",
1577    "EEMPTY": "est vide",
1578    "ETOOSHORT": "est trop court",
1579    "ETOOBIG": "est trop grand",
1580    "EINVAL": "est invalide",
1581    "EISNOTOBJ": "n'est pas un objet",
1582    "EISNOTARRAY": "n'est pas un tableau",
1583    "EISNOTBOOL": "n'est pas un bool\u00e9en",
1584    "PENDING_STATUS": "En attente",
1585    "OPEN": "En cours",
1586    "PAYING": "Paiement en cours",
1587    "PAID": "Pay\u00e9e",
1588    "COMPLETED": "Termin\u00e9e",
1589    "ACTIVATION_ERROR": "Erreur",
1590    "CANCELED": "Annul\u00e9e",
1591    "POSTFINANCE": "Postfinance",
1592    "PROXYPAY": "Proxypay",
1593    "ESHOP_TRANSFER": "Virement",
1594    "NULL_PAYMENT": "Gratuit",
1595    "LATER_PAYMENT": "R\u00e9servation",
1596    "POS_CASH": "Esp\u00e8ces",
1597    "POS_CASH_COLLECTOR": "Monnayeur",
1598    "POS_SUMUP": "Carte bancaire",
1599    "POS_OTHER_EFT": "Carte bancaire",
1600    "POS_ZVT_EFT": "Carte bancaire",
1601    "POS_WALLET": "Portefeuille",
1602    "POS_TRANSFER": "Virement",
1603    "ACTIVATED": "Activ\u00e9",
1604    "NEW": "Inactif",
1605    "PENDING": "En attente de paiement",
1606    "BLOCKED": "Bloqu\u00e9",
1607    "Director": "directeur",
1608    "Directors": "directeurs",
1609    "r\u00e9servation": "r\u00e9servation",
1610    "r\u00e9servations": "r\u00e9servations",
1611    "sur": "sur",
1612    "disponible": "disponible",
1613    "disponibles": "disponibles"
1614}
1615            };
1616            (function () {
1617                function normalizeCountryLabel(value) {
1618                    return String(value || "").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-z0-9]/g, "");
1619                }
1620                var aliasMap = null;
1621                function countryAliasMap() {
1622                    if (aliasMap) return aliasMap;
1623                    aliasMap = {
1624                        unknown: "", inconnu: "", sconosciuto: "",
1625                        cotedivoire: "CI", ivorycoast: "CI", kosovo: "XK",
1626                        zaire: "CD", yugoslavia: "YU", yougoslavie: "YU",
1627                        serbiaandmontenegro: "RS", netherlandsantilles: "AN",
1628                        unitedkingdom: "GB", uk: "GB", unitedstates: "US"
1629                    };
1630                    var skip = {
1631                        AC:1, AN:1, BU:1, CP:1, CQ:1, CS:1, DD:1, DG:1, DY:1, EA:1, EU:1, EZ:1,
1632                        FX:1, HV:1, IC:1, NH:1, QO:1, RH:1, SU:1, TA:1, TP:1, UK:1, UN:1, VD:1,
1633                        XA:1, XB:1, YD:1, YU:1, ZR:1, ZZ:1
1634                    };
1635                    var langs = ["en", "fr", "de", "it"];
1636                    var displayers = {};
1637                    langs.forEach(function (lang) {
1638                        try { displayers[lang] = new Intl.DisplayNames([lang], { type: "region" }); } catch (e) {}
1639                    });
1640                    for (var a = 65; a <= 90; a++) {
1641                        for (var b = 65; b <= 90; b++) {
1642                            var iso = String.fromCharCode(a) + String.fromCharCode(b);
1643                            if (!aliasMap[iso.toLowerCase()]) aliasMap[iso.toLowerCase()] = iso;
1644                            if (skip[iso]) continue;
1645                            langs.forEach(function (lang) {
1646                                var dn = displayers[lang];
1647                                if (!dn) return;
1648                                try {
1649                                    var name = dn.of(iso);
1650                                    if (name && name !== iso) aliasMap[normalizeCountryLabel(name)] = iso;
1651                                } catch (e) {}
1652                            });
1653                        }
1654                    }
1655                    return aliasMap;
1656                }
1657                window.tktCountryIso = function (value) {
1658                    var v = String(value == null ? "" : value).trim();
1659                    if (!v) return "";
1660                    if (/^[A-Za-z]{2}$/.test(v)) return v.toUpperCase();
1661                    return countryAliasMap()[normalizeCountryLabel(v)] || "";
1662                };
1663                window.tktCountryDisplay = function (value) {
1664                    if (value == null || String(value).trim() === "") return "";
1665                    var iso = window.tktCountryIso(value);
1666                    if (!iso) return String(value);
1667                    try {
1668                        var lang = (window.tkt_config && window.tkt_config.lang) || "fr";
1669                        return new Intl.DisplayNames([lang, "en"], { type: "region" }).of(iso) || iso;
1670                    } catch (e) {
1671                        return iso;
1672                    }
1673                };
1674            })();
1675        </script>
1675
1676        
1676<script>
1677            !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey getNextSurveyStep identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
1678            (function() {
1679                function boot() {
1680                var props = {
1681                    app: "wordpress",
1682                    lang: window.tkt_config && window.tkt_config.lang,
1683                    instance: "giff"
1684                };
1685                function stripQuery(value) {
1686                    if (typeof value !== "string" || value.indexOf("?") === -1) return value;
1687                    try {
1688                        var u = new URL(value, window.location.origin);
1689                        u.search = "";
1690                        u.hash = "";
1691                        return u.toString();
1692                    } catch (e) {
1693                        return value.split("?")[0];
1694                    }
1695                }
1696                function sanitizeProps(properties) {
1697                    if (!properties) return properties;
1698                    ["$current_url", "$initial_current_url", "$referrer", "url"].forEach(function (key) {
1699                        if (properties[key]) properties[key] = stripQuery(properties[key]);
1700                    });
1701                    return properties;
1702                }
1703                function applyGroup(client, memoSuffix) {
1704                    if (!client || !props.instance) return;
1705                    var instance = String(props.instance).slice(0, 100);
1706                    var name = String(props.instance).slice(0, 100);
1707                    var key = instance + "\0" + name;
1708                    var storeKey = "tkt_ph_instance_group" + (memoSuffix || "");
1709                    try {
1710                        if (client.__tkt_instance_group === key) return;
1711                        if (window.sessionStorage && sessionStorage.getItem(storeKey) === key) {
1712                            client.__tkt_instance_group = key;
1713                            return;
1714                        }
1715                    } catch (e) {}
1716                    try {
1717                        client.group("instance", instance, { name: name });
1718                        client.__tkt_instance_group = key;
1719                        try { sessionStorage.setItem(storeKey, key); } catch (e2) {}
1720                    } catch (e) {}
1721                }
1722                posthog.init("phc_kBHqpqfwyMyc5nn56qyoekDHCFE9GrLD4fFKt8ePoYQn", {
1723                    api_host: "https:\/\/eu.i.posthog.com",
1724                    person_profiles: "identified_only",
1725                    persistence: "localStorage+cookie",
1726                    capture_pageview: true,
1727                    capture_pageleave: true,
1728                    capture_performance: { web_vitals: true },
1729                    autocapture: false,
1730                    disable_session_recording: true,
1731                    disable_surveys: true,
1732                    advanced_disable_feature_flags: true,
1733                    sanitize_properties: sanitizeProps
1734                });
1735                try { posthog.register(props); } catch (e) {}
1736                applyGroup(posthog);
1737                var clientKey = "";
1738                if (clientKey) {
1739                    window.posthog_client = posthog.init(clientKey, {
1740                        api_host: "https:\/\/eu.i.posthog.com",
1741                        person_profiles: "identified_only",
1742                        persistence: "localStorage+cookie",
1743                        capture_pageview: true,
1744                        capture_pageleave: true,
1745                        capture_performance: { web_vitals: true },
1746                        autocapture: false,
1747                        disable_session_recording: true,
1748                        disable_surveys: true,
1749                        advanced_disable_feature_flags: true,
1750                        sanitize_properties: sanitizeProps
1751                    }, "ticketack_client");
1752                    try { window.posthog_client.register(props); } catch (e) {}
1753                    applyGroup(window.posthog_client, "_client");
1754                }
1755                }
1756                var started = false;
1757                function bootOnce() {
1758                    if (started) return;
1759                    started = true;
1760                    boot();
1761                }
1762                function cookieYesPresent() {
1763                    try {
1764                        if (typeof window.getCkyConsent === "function") return true;
1765                        if (document.getElementById("cookieyes")) return true;
1766                        if (document.querySelector("script[src*=cookieyes]")) return true;
1767                        if (/(?:^|; )cookieyes-consent=/.test(document.cookie)) return true;
1768                    } catch (e) {}
1769                    return false;
1770                }
1771                function wpConsentApiPresent() {
1772                    try {
1773                        if (typeof window.wp_has_consent === "function") return true;
1774                        if (document.documentElement && document.documentElement.getAttribute("data-wpconsent") != null) return true;
1775                        if (typeof window.wp_consent_type !== "undefined") return true;
1776                    } catch (e) {}
1777                    return false;
1778                }
1779                function cmpPresent() {
1780                    return cookieYesPresent() || wpConsentApiPresent();
1781                }
1782                function analyticsAllowed() {
1783                    try {
1784                        if (typeof window.getCkyConsent === "function") {
1785                            var c = window.getCkyConsent();
1786                            if (c && c.categories) return !!c.categories.analytics;
1787                        }
1788                    } catch (e) {}
1789                    try {
1790                        var m = document.cookie.match(/(?:^|; )cookieyes-consent=([^;]*)/);
1791                        if (m) {
1792                            return /(?:^|,)analytics:yes(?:$|,)/.test(decodeURIComponent(m[1]));
1793                        }
1794                    } catch (e2) {}
1795                    try {
1796                        if (typeof window.wp_has_consent === "function") {
1797                            if (window.wp_has_consent("statistics")) return true;
1798                            if (window.wp_has_consent("analytics")) return true;
1799                            return false;
1800                        }
1801                    } catch (e3) {}
1802                    return null;
1803                }
1804                function listenConsent() {
1805                    document.addEventListener("cookieyes_banner_load", function (e) {
1806                        var cats = e && e.detail && e.detail.categories;
1807                        if (cats && cats.analytics) bootOnce();
1808                    });
1809                    document.addEventListener("cookieyes_consent_update", function (e) {
1810                        var accepted = e && e.detail && e.detail.accepted;
1811                        if (accepted && accepted.indexOf && accepted.indexOf("analytics") !== -1) {
1812                            bootOnce();
1813                        } else if (analyticsAllowed() === true) {
1814                            bootOnce();
1815                        }
1816                    });
1817                    document.addEventListener("wp_listen_for_consent_change", function (e) {
1818                        var detail = e && e.detail;
1819                        if (detail && (detail.statistics === "allow" || detail.analytics === "allow")) {
1820                            bootOnce();
1821                            return;
1822                        }
1823                        if (analyticsAllowed() === true) bootOnce();
1824                    });
1825                    document.addEventListener("wp_consent_type_defined", function () {
1826                        if (analyticsAllowed() === true) bootOnce();
1827                    });
1828                }
1829                function schedule() {
1830                    if (!cmpPresent()) {
1831                        bootOnce();
1832                        return;
1833                    }
1834                    if (analyticsAllowed() === true) {
1835                        bootOnce();
1836                        return;
1837                    }
1838                    listenConsent();
1839                }
1840                if (typeof window.requestIdleCallback === "function") {
1841                    window.requestIdleCallback(schedule, { timeout: 3000 });
1842                } else {
1843                    window.setTimeout(schedule, 0);
1844                }
1845            })();
1846        </script>
1846
1847        
1847<script src="https://www.giff.ch/wp-content/plugins/ticketack/front/build/app.js?v=2.112.0.202609151713"></script>
1847
1848</body>
1849
1850</html>
1851
1852<!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1790946140 -->

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.