PageSourceSearch

https://www.giff.ch/early-bird/

html giff.ch collected 2026-10-02 20:05:12 UTC 161,980 bytes, 2,060 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>EARLY BIRD - GIFF - Geneva International Film Festival</title>
13	<meta name="description" content="Le Festival International du Film de Genève (GIFF) célèbre sa 32e édition avec un programme exceptionnel qui repousse les limites de l’expérience" />
14	<link rel="canonical" href="https://www.giff.ch/early-bird/" />
15	<meta property="og:locale" content="fr_FR" />
16	<meta property="og:type" content="article" />
17	<meta property="og:title" content="EARLY BIRD - GIFF - Geneva International Film Festival" />
18	<meta property="og:description" content="Le Festival International du Film de Genève (GIFF) célèbre sa 32e édition avec un programme exceptionnel qui repousse les limites de l’expérience" />
19	<meta property="og:url" content="https://www.giff.ch/early-bird/" />
20	<meta property="og:site_name" content="GIFF - Geneva International Film Festival" />
21	<meta property="article:publisher" content="https://www.facebook.com/GenevaInternationalFilmFestivalGIFF/" />
22	<meta property="article:modified_time" content="2026-08-31T13:41:58+00:00" />
23	<meta property="og:image" content="https://www.giff.ch/wp-content/uploads/2026/08/light_BANNER-EARLY-BIRD-FR.webp" />
24	<meta property="og:image:width" content="880" />
25	<meta property="og:image:height" content="328" />
26	<meta property="og:image:type" content="image/webp" />
27	<meta name="twitter:card" content="summary_large_image" />
28	<meta name="twitter:site" content="@GIFF_ch" />
29	<meta name="twitter:label1" content="Durée de lecture estimée" />
30	<meta name="twitter:data1" content="1 minute" />
31	
31<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.giff.ch\/early-bird\/","url":"https:\/\/www.giff.ch\/early-bird\/","name":"EARLY BIRD - GIFF - Geneva International Film Festival","isPartOf":{"@id":"https:\/\/www.giff.ch\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.giff.ch\/early-bird\/#primaryimage"},"image":{"@id":"https:\/\/www.giff.ch\/early-bird\/#primaryimage"},"thumbnailUrl":"https:\/\/www.giff.ch\/wp-content\/uploads\/2026\/08\/light_BANNER-EARLY-BIRD-FR.webp","datePublished":"2023-08-21T12:52:03+00:00","dateModified":"2026-08-31T13:41:58+00:00","description":"Le Festival International du Film de Genève (GIFF) célèbre sa 32e édition avec un programme exceptionnel qui repousse les limites de l’expérience","breadcrumb":{"@id":"https:\/\/www.giff.ch\/early-bird\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.giff.ch\/early-bird\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.giff.ch\/early-bird\/#primaryimage","url":"https:\/\/www.giff.ch\/wp-content\/uploads\/2026\/08\/light_BANNER-EARLY-BIRD-FR.webp","contentUrl":"https:\/\/www.giff.ch\/wp-content\/uploads\/2026\/08\/light_BANNER-EARLY-BIRD-FR.webp","width":880,"height":328},{"@type":"BreadcrumbList","@id":"https:\/\/www.giff.ch\/early-bird\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.giff.ch\/"},{"@type":"ListItem","position":2,"name":"EARLY BIRD"}]},{"@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>
31
32	<!-- / Yoast SEO plugin. -->
33
34
35<link rel='dns-prefetch' href='//www.youtube.com' />
36<link rel='dns-prefetch' href='//player.vimeo.com' />
37
38<style id='classic-theme-styles-inline-css'>
39/*! This file is auto-generated */
40.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}
41</style>
42<style id='global-styles-inline-css'>
43: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%);
43--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;}
43.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;}
44:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
45:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
46:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
47</style>
48<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' />
49<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' />
50<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' />
51<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' />
52<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' />
53<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' />
54<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 54
54
55<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 55
55
56<script id="jquery-js-after">
57window.tktjQuery=window.jQuery;
58</script>
vendor: 1 bytes, line 58
58
59<script src="https://www.youtube.com/player_api?ver=1" id="youtube-api-js"></script>
vendor: 1 bytes, line 59
59
60<script src="https://player.vimeo.com/api/player.js?ver=1" id="vimeo-api-js"></script>
60
61<meta name="generator" content="WPML ver:4.9.5 stt:1,4;" />
62<link rel="icon" href="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-32x32.webp" sizes="32x32" />
63<link rel="icon" href="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-192x192.webp" sizes="192x192" />
64<link rel="apple-touch-icon" href="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-180x180.webp" />
65<meta name="msapplication-TileImage" content="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-270x270.webp" />
66
67    
68        
68<script>
69            window.dataLayer = window.dataLayer || [];
70
71            function gtag() {
72                dataLayer.push(arguments);
73            }
74
75            gtag("consent", "default", {
76                ad_storage: "granted",
77                analytics_storage: "granted",
78                functionality_storage: "granted",
79                personalization_storage: "granted",
80                security_storage: "granted",
81                wait_for_update: 2000,
82            });
83
84            gtag("set", "ads_data_redaction", true);
85            gtag("set", "url_passthrough", true);
86        </script>
86
87
88        
88<script>
vendor: 610 bytes, lines 88-102
88
89            (function(w, d, s, l, i) {
90                w[l] = w[l] || [];
91                w[l].push({
92                    'gtm.start': new Date().getTime(),
93                    event: 'gtm.js'
94                });
95                var f = d.getElementsByTagName(s)[0],
96                    j = d.createElement(s),
97                    dl = l != 'dataLayer' ? '&l=' + l : '';
98                j.async = true;
99                j.src =
100                    'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
101                f.parentNode.insertBefore(j, f);
102            })(window, document, 'script', 'dataLayer', '
102GTM-M39VPWR
vendor: 12 bytes, lines 102-103
102');
103        
103</script>
103
104
105
106        
106<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>
106
107
108    
109<meta name="generator" content="WP Rocket 3.23.3.3" data-wpr-features="wpr_minify_js wpr_minify_css wpr_cdn wpr_preload_links wpr_desktop" /></head>
110
111<body class="wp-singular page-template-default page page-id-48369 wp-custom-logo wp-embed-responsive wp-theme-giff  intersaison body_tkt body_tkt_buy_pass">
112
113            <!-- Google Tag Manager (noscript) -->
vendor: 89 bytes, lines 113-115
113
114        <noscript>
115            <iframe src="https://www.googletagmanager.com/ns.html?id=
115GTM-M39VPWR
vendor: 100 bytes, lines 115-117
115" height="0" width="0" style="display:none;visibility:hidden"></iframe>
116        </noscript>
117        
117<!-- End Google Tag Manager (noscript) -->
118    
119    <main data-rocket-location-hash="7819bae8a4e4a6445015e05b4452c8e0" id="main-container" class="container-fluid d-flex flex-column">
120
121        <header data-rocket-location-hash="eeafa4747e848567be66b72d772955e0" id="main-nav" class="sticky-top is-selling is-nav-inter ">
122
123  <div data-rocket-location-hash="bfdcfb3a4df95076771f91cd6d04600e" id="heading-menu" class="d-flex h-100">
124
125    <div id="main-nav-brand" class="my-auto me-auto">
126      <a href="https://www.giff.ch" class="d-flex">
127        <h1 class="brand-website">
128          <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">
129            <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" />
130          </svg>
131        </h1>
132        <div class="brand-sentence">
133          <div>
134            32ND            GENEVA
135          </div>
136          <div>INTERNATIONAL</div>
137          <div>FILM FESTIVAL</div>
138          <div>30.10-8.11.2026</div>
139        </div>
140      </a>
141    </div>
142
143    <div id="main-nav-links" class="m-auto d-none d-xl-flex">
144                <button class="giff-primary-hover  btn-sub-menu" onClick="openMenu(this, 'le_festival')">
145            LE FESTIVAL          </button>
146                  <button class="gdm-primary-hover  btn-sub-menu" onClick="openMenu(this, 'gdm')">
147            Industrie          </button>
148                  <button class="giff-primary-hover  btn-sub-menu" onClick="openMenu(this, 'agenda')">
149            AGENDA          </button>
150                  <button class="giff-primary-hover  btn-sub-menu" onClick="openMenu(this, 'relive')">
151            Relive          </button>
152                  </div>
153
154          <div id="main-nav-sub-links" class="d-flex m-auto me-0">
155                  <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">
156              Early&nbsp;Bird            </span> </a>
157                                  <a href="https://www.giff.ch/panier/" class="btn btn-link btn-infoToggle">
158            <i class="bi bi-lg bi-cart3"></i>
159            <span class="h6 infoToggle">
160              Panier            </span>
161            <div class="tkt-wrapper" data-component="Cart/CartIcon"></div>
162          </a>
163                      </div>
164    
165    <div class="menu-lang m-auto  mx-4 me-xl-auto   ">
166          <a href="https://www.giff.ch/en/early-bird/" class="h3">EN</a>
167<span class="h3">|</span>
168    <span class="h3 text-primary">FR</span>
169    </div>
170
171    <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">
172      <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">
173    <rect width="68" height="8" y="0"/>
174    <rect width="68" height="8" y="20"/>
175    <rect width="68" height="8" y="40"/>
176</svg>    </button>
177
178  </div>
179
180  <div data-rocket-location-hash="a90115167202f8b03a39689cef6ef69b" id="le_festival-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/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page menu-item-home"><span class='h2'>ACCUEIL</span></a></li>
181<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-46379"><span class='h2'>LE FESTIVAL<i class="bi bi-arrow-down-short ms-n1"></i></span></button></li>
182<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>
183<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>
184</div></div><div id='menu-46379' class='sub-sub-menu pt-2 pb-1 d-flex w-100 d-none'><a href="https://www.giff.ch/le-festival/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>à propos</span></a></li>
185<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>
186<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>
187<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>
188<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>
189<a href="https://www.giff.ch/le-festival/contacts/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>Contacts</span></a></li>
190</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>
191<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>
192<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>
193<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>
194<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>
195<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>
196<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>
197</div></div><div data-rocket-location-hash="775b0611ebe9529accff6ed27cc2e5b7" 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>
198<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>
199<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>
200</div></div></div><div data-rocket-location-hash="31cc41595b5cd62148045b45764350fb" 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>
201<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>
202</div></div></div><div data-rocket-location-hash="229cb03886ab6ba76856fcae496bacf7" 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>
203<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>
204<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>
205<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>
206<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>
207<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>
208</div></div></div></header>
209
210
211<div data-rocket-location-hash="3b13ab21a33218dc5596f091b52a7827" class="offcanvas offcanvas-end" tabindex="-1" id="menu-nav-mobile" aria-labelledby="menu-nav-label">
212  <div data-rocket-location-hash="05a8172e4bf545ac9374aa6c785c5f26" class="offcanvas-header d-flex pt-0">
213
214    <div class="h4 me-sm-3 logo-header-mobile"> <a href="https://www.giff.ch" class="d-flex">
215        <div class="brand-website">
216          <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">
217            <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" />
218          </svg>
219        </div>
220        <div class="brand-sentence">
221          <div>
222            32th            GENEVA
223          </div>
224          <div>INTERNATIONAL</div>
225          <div>FILM FESTIVAL</div>
226          <div>30.10-8.11.2026</div>
227        </div>
228      </a>
229    </div>
230
231    <div class="m-auto menu-lang">
232          <a href="https://www.giff.ch/en/early-bird/" class="h3">EN</a>
233<span class="h3">|</span>
234    <span class="h3 text-primary">FR</span>
235    </div>
236    <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
237  </div>
238  <div data-rocket-location-hash="f3c080d25238bbc77f90642e237c4e10" class="offcanvas-body d-flex flex-column">
239        <hr class="mt-0 mb-3">
240    <div id="menu-wrapper" class="h-100 d-flex flex-column">
241              <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">
242          LE FESTIVAL        </button>
243        <div id="accordion-le_festival" class="accordion-collapse collapse" aria-labelledby="heading-le_festival" data-bs-parent="#menu-wrapper">
244          <div class="accordion"><a href='https://www.giff.ch/' target='' rel='' class='h2 mb-1 d-block'>ACCUEIL</a>
245				<div class='accordion-item'>
246					<div class='accordion-header' id='heading-46379'>
247						<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'>
248							LE FESTIVAL
249						</button>
250					</div>
251					<div id='accordion-46379' class='accordion-collapse collapse' aria-labelledby='heading-46379' data-bs-parent='#navMobile-'>
252						<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>
253						</div>
254					</div>
255				</div><a href='https://www.giff.ch/le-festival/partenaires/' target='' rel='' class='h2 mb-1 d-block'>Partenaires</a>
256				<div class='accordion-item'>
257					<div class='accordion-header' id='heading-37550'>
258						<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'>
259							Archives
260						</button>
261					</div>
262					<div id='accordion-37550' class='accordion-collapse collapse' aria-labelledby='heading-37550' data-bs-parent='#navMobile-'>
263						<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>
263<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>
264						</div>
265					</div>
266				</div></div>        </div>
267        <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">
268          Industrie        </button>
269        <div id="accordion-gdm" class="accordion-collapse collapse" aria-labelledby="heading-gdm" data-bs-parent="#menu-wrapper">
270          <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>
271        <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">
272          AGENDA        </button>
273        <div id="accordion-agenda" class="accordion-collapse collapse" aria-labelledby="heading-agenda" data-bs-parent="#menu-wrapper">
274          <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>
275        <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">
276          Relive        </button>
277        <div id="accordion-relive" class="accordion-collapse collapse" aria-labelledby="heading-relive" data-bs-parent="#menu-wrapper">
278          <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>
279          </div>
280    <div class="mt-auto">
281      <div class="row mt-5">
282        <div class="col-6 d-flex flex-column">
283          <div class="footer_menu_1 mt-auto text-uppercase">
284                            <a href="https://www.giff.ch/newsletter/" target="" class="footer-link-menu d-block">
285                  Newsletter                </a>
286                              <a href="https://www.giff.ch/giff-pro/presse/" target="" class="footer-link-menu d-block">
287                  Presse                </a>
288                              <a href="https://www.giff.ch/le-festival/contacts/" target="" class="footer-link-menu d-block">
289                  Contacts                </a>
290                                    </div>
291          <div class="footer-network mt-3 mb-4">
292                          <a href="https://www.facebook.com/GenevaInternationalFilmFestivalGIFF/" target="_blank" rel="noreferrer" class="me-2 h3" title="facebook"><i class="bi bi-facebook"></i></a>
293                          <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>
294                          <a href="https://twitter.com/GIFF_ch" target="_blank" rel="noreferrer" class="me-2 h3" title="twitter"><i class="bi bi-twitter"></i></a>
295                          <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>
296                      </div>
297        </div>
298        <div class="col-6">
299          <div class="footer-menu-2 h-100 d-flex flex-column">
300                  <a href="https://www.giff.ch/mentions-legales/" target="" class="footer-link-menu-2 font-size-sm mt-auto">
301        Mentions Légales      </a>
302      <a href="https://www.giff.ch/politique-de-confidentialite/" target="" class="footer-link-menu-2 font-size-sm ">
303        Politique de confidentialité      </a>
304      <a href="https://www.giff.ch/billetterie/conditions-de-vente/" target="" class="footer-link-menu-2 font-size-sm ">
305        Conditions de vente      </a>
306            <div class="font-size-sm mt-3 mb-4">© GIFF
307              2026            </div>
308          </div>
309        </div>
310      </div>
311    </div>
312  </div>
313</div><article data-rocket-location-hash="ca7fd221188b1e3ac5e9f773351c45d8" class="mt-4 static-content">
314  <div data-rocket-location-hash="886052d89aa58b7a0d9180233ecfb60b" class="row"><div class="mx-auto col-md-11 col-lg-10 col-xl-8">    <img fetchpriority="high" decoding="async" width="1200" height="447" src="https://www.giff.ch/wp-content/uploads/2026/08/BANNER-EARLY-BIRD-FR-1200x447.webp" class="img-fluid pb-3" alt="GIFF - Geneva International Film Festival" srcset="https://www.giff.ch/wp-content/uploads/2026/08/BANNER-EARLY-BIRD-FR-1200x447.webp 1200w, https://www.giff.ch/wp-content/uploads/2026/08/BANNER-EARLY-BIRD-FR-480x179.webp 480w, https://www.giff.ch/wp-content/uploads/2026/08/BANNER-EARLY-BIRD-FR-720x268.webp 720w, https://www.giff.ch/wp-content/uploads/2026/08/BANNER-EARLY-BIRD-FR-1520x567.webp 1520w, https://www.giff.ch/wp-content/uploads/2026/08/BANNER-EARLY-BIRD-FR-1824x680.webp 1824w" sizes="(max-width: 1200px) 100v
314w, 1200px" />
315
316
317<p>Le Festival International du Film de Genève (GIFF) célèbre sa 32e édition avec un programme exceptionnel qui repousse les limites de l’expérience cinématographique. <strong>Du 30 octobre au 8 novembre</strong>, le Festival vous invite à découvrir une riche sélection de films, séries et expériences immersives, étant un véritable carrefour des genres et des disciplines.</p>
318
319
320
321<p>Pour l’occasion, le GIFF propose des pass<strong> <em>Early Bird</em> à prix réduit</strong> ! Disponibles jusqu’au 7 octobre 2026 à minuit, au tarif de <strong>110 CHF au lieu de 165 CHF</strong>, ces pass donnent accès à toutes les projections et conférences du Festival. Le Pass GIFF permet également d’accéder au GIFF PRO, à l’exception des activités privées.</p>
322
323
324
325<p>Toutes les séances sont accessibles sur réservation. </p>
326
327
328
329<p>Valables pour toute la durée de l’événement, les pass vous permettront de profiter pleinement de cette édition, tout en vous immergeant dans l’univers unique du GIFF.<br><br><strong>La révélation du programme complet et l’ouverture de la billetterie auront lieu le 8 octobre 2026.</strong><br><br>Toute l&rsquo;équipe du GIFF se réjouit de vous accueillir !</p>
330
331
332<div
333  class="tkt-wrapper"
334  data-component="Pass/BuyForm"
335  data-redirect="none"
336  data-cart-url="https://www.giff.ch/panier/"
337  data-checkout-url="https://www.giff.ch/panier/"
338  data-theme="light"
339  data-selected=""
340  data-types="pass_festival_special_nuitsblanches_gdmonsite_2026"
341  data-salepoint-id="9bccaba1-1fc4-4e9e-a468-ad5500066480"
342  data-currency="CHF"
343  data-lang="fr"
344  data-default-lang="fr">
345  <div class="row">
346    <div class="col tkt-pass-list-target">
347      <div data-component="Media/Loading" data-size-sm data-align-center></div>
348    </div>
349  </div>
350
351  <div class="row">
352    <div class="col">
353      <div class="tkt-wrapper">
354  <section class="tkt-section tkt-light-section tkt-pass-form-section">
355    <h3 class="tkt-section-title mb-3">
356      Titulaire    </h3>
357    <div class="row">
358      <div class="col">
359        <form>
360          <fieldset>
361            <div class="row">
362              <div id="field-wrapper-company" class="field-wrapper col-md-4" style="display: block;">
363                <div class="form-group">
364                   <label class="required" for="company">Entreprise</label>
365                   <input name="company" type="text" class="tkt-input form-control field" id="company" placeholder="Votre entreprise" required />
366                </div>
367              </div>
368            </div>
369            <div class="row">
370              <div id="field-wrapper-title" class="col-md-12 field-wrapper form-group" style="display: none;">
371                <label class="required" for="title">Civilité</label>
372                <select name="title" id="title" class="tkt-input form-control field" required>
373                  <option value=""></option>
374                    <option value="n/c">Pas de réponse</option><option value="mrs">Madame</option><option value="miss">Mademoiselle</option><option value="mr">Monsieur</option><option value="dr">Docteur</option>                </select>
375              </div>
376            </div>
377            <div class="row">
378              <div id="field-wrapper-firstname" class="field-wrapper col-md-4" style="display: block;">
379                <div class="form-group">
380                   <label class="required" for="firstname">Prénom</label>
381                   <input name="firstname" type="text" class="tkt-input form-control field" id="firstname" placeholder="Votre prénom" required />
382                </div>
383              </div>
384
385              <div id="field-wrapper-lastname" class="field-wrapper col-md-4" style="display: block;">
386                <div class="form-group">
387                  <label class="required" for="lastname">Nom</label>
388                  <input name="lastname" type="text" class="tkt-input form-control field" id="lastname" placeholder="Votre nom de famille" required />
389                </div>
390              </div>
391
392              <div id="field-wrapper-email" class="field-wrapper col-md-4" style="display: block;">
393                <div class="form-group">
394                  <label class="required" for="email">E-mail</label>
395                  <input name="email" type="email" class="tkt-input form-control field" id="email" placeholder="Votre adresse e-mail" pattern="[^@]+@[^@]+\.[a-zA-Z]{2,}" required />
396                </div>
397              </div>
398            </div>
399
400            <div class="row">
401
402              <div id="field-wrapper-address" class="field-wrapper form-group col-md-4">
403                <label class="required" for="address">Adresse</label>
404                <textarea name="address" class="tkt-input form-control field" id="address" placeholder="Votre adresse" required></textarea>
405              </div>
406
407              <div id="field-wrapper-zip" class="field-wrapper col-md-4">
408                <div class="form-group">
409                  <label class="required" for="zip">Numéro postal</label>
410                  <input name="zip" type="text" class="tkt-input form-control field" id="zip" placeholder="NPA" required />
411                </div>
412              </div>
413
414              <div id="field-wrapper-city" class="field-wrapper col-md-4">
415                <div class="form-group">
416                  <label class="required" for="city">Ville</label>
417                  <input name="city" type="text" class="tkt-input form-control field" id="city" placeholder="Ville" required />
418                </div>
419              </div>
420            </div>
421
422            <div class="row">
423              <div id="field-wrapper-country" class="form-group field-wrapper col-md-12" style="display: none;">
424                <label class="required" for="country">Pays</label>
425                <select name="country" id="country" class="tkt-input form-control field" required>
426                  <option value=""></option>
427                  <option value="AF">Afghanistan</option><option value="AL">Albanie</option><option value="DZ">Algérie</option><option value="AS">Samoa Américaines</option><option value="AD">Andorre</option><option value="AO">Angola</option><option value="AI">Anguilla</option><option value="AQ">Antarctique</option><option value="AG">Antigua-et-barbuda</option><option value="AR">Argentine</option><option value="AM">Arménie</option><option value="AW">Aruba</option><option value="AU">Australie</option><option value="AT">Autriche</option><option value="AZ">AzerbaÏdjan</option><option value="BS">Bahamas</option><option value="BH">BahreÏn</option><option value="BD">Bangladesh</option><option value="BB">Barbade</option><option value="BY">Bélarus</option><option value="BE">Belgique</option><option value="BZ">Belize</option><option value="BJ">Bénin</option><option value="BM">Bermudes</option><option value="BT">Bhoutan</option><option value="BO">Bolivie, L&#039;
427État Plurinational De</option><option value="BA">Bosnie-herzégovine</option><option value="BW">Botswana</option><option value="BV">Bouvet, Île</option><option value="BR">Brésil</option><option value="IO">Océan Indien, Territoire Britannique De L&#039;</option><option value="BN">Brunéi Darussalam</option><option value="BG">Bulgarie</option><option value="BF">Burkina Faso</option><option value="BI">Burundi</option><option value="KH">Cambodge</option><option value="CM">Cameroun</option><option value="CA">Canada</option><option value="CV">Cap-vert</option><option value="KY">CaÏmanes, Îles</option><option value="CF">Centrafricaine, République</option><option value="TD">Tchad</option><option value="CL">Chili</option><option value="CN">Chine</option><option value="CX">Christmas, Île</option><option value="CC">Cocos (keeling), Îles</option><option value="CO">Colombie</option><option value="KM">Comores</option><option value="CD">Congo, La République Démocratique Du</option><option value="CK">Cook, Îles</option><option value="CR">Costa Rica</option><option value="CI">Côte D&#039;ivoire</option><option value="HR">Croatie</option><option value="CU">Cuba</option><option value="CY">Chypre</option><option value="CZ">Tchèque, République</option><option value="DK">Danemark</option><option value="DJ">Djibouti</option><option value="DM">Dominique</option><option value="DO">Dominicaine, République</option><option value="EC">équateur</option><option value="EG">Égypte</option><option value="SV">El Salvador</option><option value="GQ">Guinée équatoriale</option><option value="ER">Érythrée</option><option value="EE">Estonie</option><option value="ET">Éthiopie</option><option value="FK">Falkland, Îles (malvinas)</option><option value="FO">Féroé, Îles</option><option value="FJ">Fidji</option><option value="FI">Finlande</option><option value="FR">France</option><option value="GF">Guyane FranÇaise</option><option value="PF">Polynésie FranÇaise</option><option value="TF">Terres Australes FranÇaises</option><option value="GA">Gabon</option><option value="GM">Gambie</option><option value="GE">Géorgie</option><option value="DE">Allemagne</option><option value="GH">Ghana</option><option value="GI">Gibraltar</option><option value="GR">Grèce</option><option value="GL">Groenland</option><option value="GD">Grenade</option><option value="GP">Guadeloupe</option><option value="GU">Guam</option><option value="GT">Guatemala</option><option value="GN">Guinée</option><option value="GW">Guinée-bissau</option><option value="GY">Guyana</option><option value="HT">HaÏti</option><option value="HM">Heard, Île Et Mcdonald, Îles</option><option value="VA">Saint-siège (État De La Cité Du Vatican)</option><option value="HN">Honduras</option><option value="HU">Hongrie</option><option value="IS">Islande</option><option value="IN">Inde</option><option value="ID">Indonésie</option><option value="IR">Iran, République Islamique D&#039;</option><option value="IQ">Irak</option><option value="IE">Irlande</option><option value="IL">Israël</option><option value="IT">Italie</option><option value="JM">JamaÏque</option><option value="JP">Japon</option><option value="JO">Jordanie</option><option value="KZ">Kazakhstan</option><option value="KE">Kenya</option><option value="KI">Kiribati</option><option value="KP">Corée, République Populaire Démocratique De</option><option value="KR">Corée, République De</option><option value="KW">KoweÏt</option><option value="KG">Kirghizistan</option><option value="LA">Lao, République Démocratique Populaire</option><option value="LV">Lettonie</option><option value="LB">Liban</option><option value="LS">Lesotho</option><option value="LR">Libéria</option><option value="LY">Libyenne, Jamahiriya Arabe</option><option value="LI">Liechtenstein</option><option value="LT">Lituanie</option><option value="LU">Luxembourg</option><option value="MK">Macédoine, L&#039;ex-république Yougoslave De</option><option value="MG">Madagascar</option><option value="MW">Malawi</option><option value="MY">Malaisie</option><option value="MV">Maldives</option><option value="ML">Mali</option><option value="MT">Malte</option><option value="MH">Marshall, Îles</option><option value="MQ">Martinique</option><option value="MR">Mauritanie</option><option value="MU">Maurice</option><option value="YT">Mayotte</option><option value="MX">Mexique</option><option value="FM">Micronésie, États Fédérés De</option><option value="MD">Moldavie, République De</option><option value="MC">Monaco</option><option value="MN">Mongolie</option><option value="MS">Montserrat</option><option value="MA">Maroc</option><option value="MZ">Mozambique</option><option value="MM">Myanmar</option><option value="NA">Namibie</option><option value="NR">Nauru</option><option value="NP">Népal</option><option value="NL">Pays-bas</option><option value="AN">Antilles Néerlandaises</option><option value="NC">Nouvelle-calédonie</option><option value="NZ">Nouvelle-zélande</option><option value="NI">Nicaragua</option><option value="NE">Niger</option><option value="NG">Nigéria</option><option value="NU">Niué</option><option value="NF">Norfolk, Île</option><option value="MP">Mariannes Du Nord, Îles</option><option value="NO">Norvège</option><option value="OM">Oman</option><option value="PK">Pakistan</option><option value="PW">Palaos</option><option value="PS">Palestinien Occupé, Territoire</option><option value="PA">Panama</option><option value="PG">Papouasie-nouvelle-guinée</option><option value="PY">Paraguay</option><option value="PE">Pérou</option><option value="PH">Philippines</option><option value="PL">Pologne</option><option value="PT">Portugal</option><option value="PR">Porto Rico</option><option value="QA">Qatar</option><option value="RE">Réunion</option><option value="RO">Roumanie</option><option value="RU">Russie, Fédération De</option><option value="RW">Rwanda</option><option value="KN">Saint-kitts-et-nevis</option><option value="LC">Sainte-lucie</option><option value="PM">Saint-pierre-et-miquelon</option><option value="VC">Saint-vincent-et-les Grenadines</option><option value="WS">Samoa</option><option value="SM">Saint-marin</option><option value="ST">Sao Tomé-et-principe</option><option value="SA">Arabie Saoudite</option><option value="SN">Sénégal</option><option value="RS">Serbie et Monténégro</option><option value="SC">Seychelles</option><option value="SL">Sierra Leone</option><option value="SG">Singapour</option><option value="SK">Slovaquie</option><option value="SI">Slovénie</option><option value="SB">Salomon, Îles</option><option value="SO">Somalie</option><option value="ZA">Afrique Du Sud</option><option value="GS">Géorgie Du Sud Et Les Îles Sandwich Du Sud</option><option value="ES">Espagne</option><option value="LK">Sri Lanka</option><option value="SD">Soudan</option><option value="SR">Suriname</option><option value="SJ">
427Svalbard Et Île Jan Mayen</option><option value="SZ">Swaziland</option><option value="SE">Suède</option><option value="CH">Suisse</option><option value="SY">Syrienne, République Arabe</option><option value="TW">TaÏwan, Province De Chine</option><option value="TJ">Tadjikistan</option><option value="TZ">Tanzanie, République-unie De</option><option value="TH">ThaÏlande</option><option value="TL">Timor-leste</option><option value="TG">Togo</option><option value="TK">Tokelau</option><option value="TO">Tonga</option><option value="TT">Trinité-et-tobago</option><option value="TN">Tunisie</option><option value="TR">Turquie</option><option value="TM">Turkménistan</option><option value="TC">Turks Et CaÏques, Îles</option><option value="TV">Tuvalu</option><option value="UG">Ouganda</option><option value="UA">Ukraine</option><option value="AE">émirats Arabes Unis</option><option value="GB">Royaume-uni</option><option value="US">États-unis</option><option value="UM">Îles Mineures éloignées Des États-unis</option><option value="UY">Uruguay</option><option value="UZ">Ouzbékistan</option><option value="VU">Vanuatu</option><option value="VE">Venezuela, République Bolivarienne Du</option><option value="VN">Viêt-Nam</option><option value="VG">Îles Vierges Britanniques</option><option value="VI">Îles Vierges Des États-unis</option><option value="WF">Wallis Et Futuna</option><option value="EH">Sahara Occidental</option><option value="YE">Yémen</option><option value="ZM">Zambie</option><option value="ZW">Zimbabwe</option><option value="XK">Kosovo</option><option value="RS">Serbie</option><option value="CD">Zaïre</option><option value="YU">Yougoslavie</option>                </select>
428              </div>
429            </div>
430
431            <div class="row">
432              <div id="field-wrapper-phone" class="field-wrapper col-md-6">
433                <div class="form-group">
434                  <label class="required" for="phone">Téléphone</label>
435                  <input name="phone" type="tel" class="tkt-input form-control field" id="phone" pattern="^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$" placeholder="Téléphone" required />
436                </div>
437              </div>
438              <div id="field-wrapper-cellphone" class="field-wrapper col-md-6">
439                <div class="form-group">
440                  <label class="required" for="cellphone">Téléphone portable</label>
441                  <input name="cellphone" type="tel" class="tkt-input form-control field" id="cellphone" pattern="^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$" placeholder="Téléphone portable" required />
442                </div>
443              </div>
444            </div>
445
446            <div class="row">
447              <div id="field-wrapper-age" class="col-md-12 field-wrapper form-group" style="display: none;">
448                <label class="required" for="age">Âge</label>
449                <select name="age" id="age" class="tkt-input form-control field" required>
450                  <option value=""></option>
451                  <option value="Pas de réponse">Pas de réponse</option><option value="&lt; 5">&lt; 5</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option><option value="32">32</option><option value="33">33</option><option value="34">34</option><option value="35">35</option><option value="36">36</option><option value="37">37</option><option value="38">38</option><option value="39">39</option><option value="40">40</option><option value="41">41</option><option value="42">42</option><option value="43">43</option><option value="44">44</option><option value="45">45</option><option value="46">46</option><option value="47">47</option><option value="48">48</option><option value="49">49</option><option value="50">50</option><option value="51">51</option><option value="52">52</option><option value="53">53</option><option value="54">54</option><option value="55">55</option><option value="56">56</option>
451<option value="57">57</option><option value="58">58</option><option value="59">59</option><option value="60">60</option><option value="61">61</option><option value="62">62</option><option value="63">63</option><option value="64">64</option><option value="65">65</option><option value="66">66</option><option value="67">67</option><option value="68">68</option><option value="69">69</option><option value="70">70</option><option value="71">71</option><option value="72">72</option><option value="73">73</option><option value="74">74</option><option value="75">75</option><option value="76">76</option><option value="77">77</option><option value="78">78</option><option value="79">79</option><option value="80">80</option><option value="&gt; 80">&gt; 80</option>                </select>
452              </div>
453            </div>
454
455            <div class="row">
456              <div id="field-wrapper-birthdate" class="col-md-12 field-wrapper form-group" style="display: none;">
457                <label class="required" for="birthdate">Date de naissance</label>
458                <input name="birthdate" type="text" class="tkt-input form-control field" id="birthdate" data-component="Form/Calendar" placeholder="Date de naissance" required data-date-format="d.m.Y" />
459              </div>
460            </div>
461
462            <div class="row">
463              <div id="field-wrapper-sex" class="col-md-12 field-wrapper form-group" style="display: none;">
464                <label class="required" for="sex">Genre</label>
465                <select name="sex" id="sex" class="tkt-input form-control field" required>
466                  <option value=""></option>
467                    <option value="n/c">Pas de réponse</option><option value="f">Féminin</option><option value="m">Masculin</option><option value="o">Autre</option>                </select>
468              </div>
469            </div>
470
471            <div class="row">
472              <div id="field-wrapper-photo" class="field-wrapper col-md-12" style="display: none;"> 
473                <label class="photo">Photo</label>
474                <div class="col-md-12 form-group tkt-wrapper-photo" data-component="Media/Webcam" data-width="300">
475                    <div class="row">
476                      <div class="form-group col-md-6 mt-3 text-center">
477                        <input name="photo" type="file" class="tkt-input form-control field" id="photo" accept="image/jpeg, image/png, image/gif, image/webp, image/avif" data-component="Form/ImageDataUrl" data-width="300" hidden >
478                        <button type="button" class="btn btn-default choose-btn">
479                          <span><i class="tkt-icon-image"></i> Choisir une image</span>
480                        </button>
481                        <i class="tkt-icon-info" data-component="Ui/Tippy" data-tippy-content="Formats pris en charge : jpeg, png, webp, avif ou gif"></i><br>
482                        <span class="small">ou</span>
483                        <div class="form-group col-md-12 p-0 mt-3">
484                            <button type="button" class="btn btn-default">
485                              <i class="tkt-icon-camera"></i>
486                              <span class="stop_video"> Arrêter la vidéo</span>
487                              <span class="start_video"> Prendre une photo depuis la caméra</span>
488                            </button>
489                            <button type="button" class="btn btn-success takePicture">
490                                Prendre une photo                            </button>
491                        </div>
492                      </div>
493                      <div class="form-group preview col-md-6">
494                        <div class="contentarea">
495                            <div class="camera form-group">
496                                <video id="video" class="mt-3 mb-3" style="display: block">
497                                    Vidéo non supportée                                </video>
498                            </div>
499                            <canvas id="canvas" style="display: none;"></canvas>
500                        </div>
501                        <img class="image-preview" width="300" />
502                      </div>
503                      <div class="col-md-12">
504                      <em class="small">Sans photo clairement reconnaissable, nous nous réservons le droit de vous refuser l&#039;entrée. En cas d&#039;abus, votre billet pourra être bloqué.</em>
505                      </div>
506                    </div>
507                </div>
508              </div>
509            </div>
510            <div class="row">
511              <div id="field-wrapper-pass-sale-price" class="field-wrapper col-md-4" style="display: none;">
512                <div class="form-group">
513                  <label for="pass_sale_price">Montant</label>
514                  <input name="pass_sale_price" type="number" step="0.05" min="0" class="tkt-input form-control field pass-sale-price" id="pass_sale_price" onfocus="this.select()" />
515                </div>
516              </div>
517            </div>
518            <div class="row">
519              <div id="field-wrapper-comment" class="field-wrapper form-group col-md-4">
520                <label class="required" for="comment">Commentaires</label>
521                <textarea name="comment" class="tkt-input form-control field" id="comment" placeholder="Votre commentaire" required></textarea>
522              </div>
523            </div>
524            <div class="row">
525              <div id="field-wrapper-gift_message" class="col-md-12 field-wrapper form-group" style="display: none;">
526                <input id="gift_toggl" type="checkbox">
527                <label for="gift_message">Envoyer ce billet en cadeau par e-mail au titulaire</label>
528                <textarea id="user_gift_message" class="form-control" name="gift_message" data-default="Vous pouvez indiquer ici un message personnalisé (eg. "Profite bien de ton cadeau !")" style="display: none;"></textarea>
529              </div>
530            </div>
531          </fieldset>
532
533          <fieldset>
534            <div id="submit-section" class="row">
535              <div class="col-md-12 text-right">
536                <p id="notice-required" class="small">Ces champs sont requis</p>
537                <button type="submit" class="button active btn-block">
538                  <i class="tkt-icon-shopping-cart"></i>Ajouter au panier                </button>
539              </div>
540            </div>
541          </fieldset>
542          <div class="row mt-2">
543              <div class="col-md-12 alert alert-success"></div>
544              <div class="col-md-12 alert alert-danger"></div>
545          </div>
546        </form>
547      </div>
548    </div>
549  </section>
550</div>
551    </div>
552  </div>
553</div>
554
555  </div></div></article>
556
557
558<footer data-rocket-location-hash="d6a505e6249949c3d11c2fcd98075cab" class="mt-auto">
559  <div data-rocket-location-hash="2ac0f0584fcdd4c52dd07f29eca2ded1" class="row mt-5 pt-5">
560    <div class="d-none d-xl-block col-xl-4">
561        <a href="https://www.giff.ch" class="logo-footer-link">
562    <img src="https://www.giff.ch/wp-content/uploads/2026/06/giff-logo-2026-1.svg" alt="" class="logo-footer">
563  </a>
564    </div>
565    <div class="col-12 col-xl-8">
566      <hr class="mt-2 mb-4">
567      <div class="d-sm-flex w-100">
568        <div class="d-none d-md-block d-lg-none w-100">
569            <a href="https://www.giff.ch" class="logo-footer-link">
570    <img src="https://www.giff.ch/wp-content/uploads/2026/06/giff-logo-2026-1.svg" alt="" class="logo-footer">
571  </a>
572        </div>
573        <div id="footer_menu" class="d-lg-flex justify-content-between text-center text-sm-start w-100 ps-sm-5 ps-lg-0">
574          <div class="vertical-bar d-none d-lg-block"></div>
575          <div class="footer-network">
576                          <a href="https://www.facebook.com/GenevaInternationalFilmFestivalGIFF/" target="_blank" rel="noreferrer" class="me-2 h3" title="facebook"><i class="bi bi-facebook"></i></a>
577                                      <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>
578                                      <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>
579                                      <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>
580                      </div>
581          <div class="vertical-bar d-none d-lg-block"></div>
582                        <a href="https://www.giff.ch/newsletter/" target="" class="footer-link-menu">
583                Newsletter              </a>
584              <div class="vertical-bar d-none d-lg-block"></div>
585                          <a href="https://www.giff.ch/giff-pro/presse/" target="" class="footer-link-menu">
586                Presse              </a>
587              <div class="vertical-bar d-none d-lg-block"></div>
588                          <a href="https://www.giff.ch/le-festival/contacts/" target="" class="footer-link-menu">
589                Contacts              </a>
590              <div class="vertical-bar d-none d-lg-block"></div>
591                              </div>
592        <div class="d-lg-none w-100 mt-sm-4">
593          <div class="mt-3 mt-lg-5 pt-sm-3 pt-lg-0 mb-4 footer-menu-2 text-center text-sm-start">
594                  <a href="https://www.giff.ch/mentions-legales/" target="" class="footer-link-menu-2 font-size-sm mt-auto">
595        Mentions Légales      </a>
596      <a href="https://www.giff.ch/politique-de-confidentialite/" target="" class="footer-link-menu-2 font-size-sm ">
597        Politique de confidentialité      </a>
598      <a href="https://www.giff.ch/billetterie/conditions-de-vente/" target="" class="footer-link-menu-2 font-size-sm ">
599        Conditions de vente      </a>
600            <div class="font-size-sm mt-3">© GIFF
601              2026            </div>
602          </div>
603        </div>
604      </div>
605      <div class="d-lg-flex">
606        <div class="d-none d-lg-block">
607          <div class="mt-3 mt-lg-5 pt-sm-3 pt-lg-0 mb-4 footer-menu-2">
608                  <a href="https://www.giff.ch/mentions-legales/" target="" class="footer-link-menu-2 font-size-sm mt-auto">
609        Mentions Légales      </a>
610      <a href="https://www.giff.ch/politique-de-confidentialite/" target="" class="footer-link-menu-2 font-size-sm ">
611        Politique de confidentialité      </a>
612      <a href="https://www.giff.ch/billetterie/conditions-de-vente/" target="" class="footer-link-menu-2 font-size-sm ">
613        Conditions de vente      </a>
614            <div class="font-size-sm mt-3">© GIFF
615              2026<br>
616            </div>
617          </div>
618        </div>
619        <div id="footer-logo" class="mt-3 text-center ps-lg-4">
620  <div class="d-flex justify-content-between w-100 flex-wrap">
621    <div class="mb-3">
622      <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>
623    </div>
624    <div class="mb-3">
625      <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
625w, 350px" /></a></div>
626    </div>
627    <div class="mb-3">
628      <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>
629    </div>
630    <div class="mb-3">
631      <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>
632    </div>
633    <div class="mb-3">
634      <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>
635    </div>
636  </div>
637  <div class="d-flex justify-content-between w-100 flex-wrap">
638    <div class="mb-3">
639      <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>
640    </div>
641    <div class="mb-3">
642      <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>
643    </div>
644    <div class="mb-3">
645      <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>
646    </div>
647    <div class="mb-3">
648      <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
648w, 676px" /></a></div>
649    </div>
650    <div class="mb-3">
651      <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>
652    </div>
653    <div class="mb-3">
654      <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>
655    </div>
656  </div>
657</div>      </div>
658    </div>
659  </div>
660</footer>
661</main>
662
663<div data-rocket-location-hash="db1ade9dd08a33f7703f9fc302ad87df" class="background-site-wrapper">
664  <img src="https://www.giff.ch/wp-content/themes/giff/medias/images/background-dark-2026.webp" alt="" class="background-site">
665</div>
666
667<div data-rocket-location-hash="afa3a02594d2e1fa5e4d61a1ee8581ef" class="modal fade" id="newsletterModal" data-bs-backdrop="static" data-bs-keyboard="true" tabindex="-1" aria-labelledby="newsletterLabel" aria-hidden="true">
668  <div data-rocket-location-hash="46091e449ea83acc8d05aae6d4f178fd" class="modal-dialog modal-dialog-centered modal-lg">
669    <div data-rocket-location-hash="9a7007a1754068f5a418aa1a3a790c17" class="modal-content">
670      <div class="modal-header">
671        <div class="modal-title h2 mb-0 py-2" id="newsletterLabel">
672          Newsletter
673        </div>
674        <button id="closeNewsletter" type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
675      </div>
676      <div class="modal-body">
677        <div class="row">
678          <div class="col-12 col-sm-4 col-xl-3">
679            <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>
680          </div>
681          <div class="col-12 col-sm-8 col-xl-9">
682            <div id="mc_embed_signup">
683              <p class="mb-2 h3 mt-3 pt-1">
684                Inscrivez-vous pour recevoir les dernières nouvelles du GIFF              </p>
685              <div id="mc_embed_signup">
686                <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>
687                  <div id="mc_embed_signup_scroll">
688
689                    <div data-rocket-location-hash="7d811f982cbfb8357739d3eb4d5fe759" class="mb-2">
690                      <label for="mce-EMAIL" class="form-label">E-mail<span class="asterisk">*</span> </label>
691                      <input type="email" value="" name="EMAIL" class="required email form-control" id="mce-EMAIL">
692                    </div>
693
694                    <div class="row mb-2">
695                      <div class="col-12 col-md-4">
696                        <div class="mb-3">
697                          <label for="mce-FNAME">Prénom</label>
698                          <input type="text" value="" name="FNAME" class="form-control" id="mce-FNAME">
699                        </div>
700                      </div>
701                      <div class="col-12 col-md-4">
702                        <div class="mb-3">
703                          <label for="mce-LNAME">Nom</label>
704                          <input type="text" value="" name="LNAME" class="form-control" id="mce-LNAME">
705                        </div>
706                      </div>
707                      <div class="col-12 col-md-4">
708                        <div class="mb-3">
709                          <label for="mce-MMERGE5">Profession</label>
710                          <input type="text" value="" name="MMERGE5" class="form-control" id="mce-MMERGE5">
711                        </div>
712                      </div>
713                    </div>
714
715                    <div class="d-flex flex-column mb-3">
716
717                      <div class="mb-2 pb-2">
718                        <div class="h4">Langue</div>
719                        <div class="form-check form-check-inline">
720                          <input type="radio" name="group[30]" class="form-check-input" value="1" id="mce-group[30]-30-0" checked>
721                          <label for="mce-group[30]-30-0" class="form-check-label">Français</label>
722                        </div>
723                        <div class="form-check form-check-inline">
724                          <input type="radio" name="group[30]" class="form-check-input" value="2" id="mce-group[30]-30-1">
725                          <label for="mce-group[30]-30-1" class="form-check-label">Anglais</label>
726                        </div>
727                        <div class="form-check form-check-inline">
728                          <input type="radio" name="group[30]" class="form-check-input" value="4" id="mce-group[30]-30-2">
729                          <label for="mce-group[30]-30-2" class="form-check-label">Allemand</label>
730                        </div>
731                      </div>
732
733                      <div>
734                        <div data-rocket-location-hash="ca7982339d5508c82e8505258d585041" class="h4 mb-1">Newsletter</div>
735                        <div class="form-check form-check-inline">
736                          <input type="radio" name="group[34]" class="form-check-input" value="8" id="mce-group[34]-34-0" checked>
737                          <label for="mce-group[34]-34-0" class="form-check-label">Public</label>
738                        </div>
739                        <div class="form-check form-check-inline">
740                          <input type="radio" name="group[34]" class="form-check-input" value="16" id="mce-group[34]-34-1">
741                          <label for="mce-group[34]-34-1" class="form-check-label">Pro</label>
742                        </div>
743                        <div class="form-check form-check-inline">
744                          <input type="radio" name="group[34]" class="form-check-input" value="32" id="mce-group[34]-34-2">
745                          <label for="mce-group[34]-34-2" class="form-check-label">Presse</label>
746                        </div>
747                      </div>
748
749                    </div>
750                    <div id="mce-responses" class="clear mt-3">
751                      <div class="response alert alert-warning" id="mce-error-response" style="display:none"></div>
752                      <div class="response alert alert-success" id="mce-success-response" style="display:none"></div>
753                    </div>
754
755                    <div style="position: absolute; left: -5000px;" aria-hidden="true">
756                      <input type="text" name="b_4a6caf431f879e7480319e146_f757bf97fe" tabindex="-1" value="">
757                    </div>
758
759                    <div class="mb-3">
760                      <input type="submit" value="S'inscrire" name="subscribe" id="mc-embedded-subscribe" class="btn btn-outline-primary mb-2">
761                    </div>
762                  </div>
763                </form>
764              </div>
765              
765<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script>
765
766              
766<script type="text/javascript">
767                (function($) {
768                  window.fnames = new Array();
769                  window.ftypes = new Array();
770                  fnames[0] = 'EMAIL';
771                  ftypes[0] = 'email';
772                  fnames[1] = 'FNAME';
773                  ftypes[1] = 'text';
774                  fnames[2] = 'LNAME';
775                  ftypes[2] = 'text';
776                  fnames[5] = 'MMERGE5';
777                  ftypes[5] = 'text';
778                  fnames[3] = 'MMERGE3';
779                  ftypes[3] = 'text';
780                  fnames[4] = 'MMERGE4';
781                  ftypes[4] = 'text';
782                }(jQuery));
783                var $mcj = jQuery.noConflict(true);
784              </script>
784
785            </div>
786          </div>
787        </div>
788      </div>
789    </div>
790  </div>
791</div><div data-rocket-location-hash="0fe33cd98c101a0dae155776a8894881" class="modal fade" id="login-modal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="login-label" aria-hidden="true">
792  <div data-rocket-location-hash="f6477b7774ab2e5fd10a2cd46e232020" class="modal-dialog modal-dialog-centered modal-md">
793    <div data-rocket-location-hash="de82b39ababf41c8c85c15e14cf5dfa0" class="modal-content">
794      <div class="modal-header">
795        <div class="modal-title h2 mb-0 pt-2 pb-1" id="login-label">
796          Connexion Fermée        </div>
797        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
798      </div>
799      <div class="modal-body">
800        <div class="mb-2">
801          <div class="h3 mt-3 lh-sm">
802            Connectez-vous pour réserver vos&nbsp;séances          </div>
803          <div class="h4 mb-1 lh-sm" style="font-size: 1.25rem;">
804            Vous avez un&nbsp;pass, une&nbsp;accréditation, une&nbsp;carte ou une&nbsp;invitation ?          </div>
805                      <div class="opacity-50" style="pointer-events: none;">
806                        <div class="tkt-wrapper"
807    data-component="Ticket/TicketConnect"
808    data-redirect="none"
809    data-cart-url="https://www.giff.ch/panier/"
810    data-checkout-url="https://www.giff.ch/panier/"></div>
811
812<script type="text/template" id="tkt-ticket-tpl">
813    <%
814    const errors = {
815        'screening.start_at': "Les votes seront possibles d\u00e8s le d\u00e9but de la s\u00e9ance",
816        'screening.stop_at': "Les votes seront possibles d\u00e8s la fin de la s\u00e9ance",
817        'needs_scan': "Vous ne pouvez pas voter car votre billet n'a pas \u00e9t\u00e9 contr\u00f4l\u00e9",
818        'not_before': "Les votes ne sont pas encore possibles pour cette s\u00e9ance",
819        'not_after': "Les votes ne sont plus possibles pour cette s\u00e9ance",
820    };
821    %>
822    <% if (tickets?.length > 1) { %>
823        <div class="mb-3">
824            <ul class="nav nav-tabs nav-fill">
825                <% _.sortBy(tickets, t => t.getDisplayName()).map(function (t) {  %>
826                    <li class="nav-item">
827                        <a data-ticket-id="<%= t._id %>"class="nav-link ticket-link <%= t._id === ticket?._id ? 'active' : '' %>">
828                            <%= t.getTypeName() %> -
829                            <%= t.getDisplayName() %>
830                        </a>
831                    </li>
832                <% }) %>
833            </ul>
834        </div>
835    <% } %>
836
837    <% if (ticket) { %>
838
839    <%
840        const bookings = ticket.bookings || [];
841        const pastBookings = bookings.filter(b => b.screening?.isFinished());
842        const futureBookings = bookings.filter(b => !b.screening?.isFinished());
843    %>
844    <div class="tkt-ticket-view">
845        <% if (!ticket.isNew()) { %>
846        <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>
847        <% } else { %>
848        <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>
849        <% } %>
850
851        <!-- Title -->
852        <div class="mb-3">
853            <h3>
854                <strong>
855                    <%= ticket.getTypeName() %> -
856                    <%= ticket.getDisplayName() %>
857                </strong>
858            </h3>
859        </div>
860
861        <!-- Réservations -->
862        <% if (!ticket.isNew()) { %>
863        <section class="tkt-section tkt-light-section">
864            <% if (!pastBookings.length && !futureBookings.length) { %>
865                <h3>Réservations</h3>
866                <div class="mb-2">
867                    Il n&#039;y a actuellement aucune réservation sur ce billet.                </div>
868            <% } else { %>
869                <% if (futureBookings.length) { %>
870                    <h3>Réservations</h3>
871                    <table class="table table-striped table-hover no-more-tables">
872                        <thead>
873                            <tr>
874                                <th>Date</th>
875                                <th>Réservation</th>
876                                <th>Lieu</th>
877                                <th><i class="tkt-icon-smartphone"></i></th>
878                                <th class="text-right">Action</th>
879                            </tr>
880                        </thead>
881                        <tbody>
882                            <% futureBookings.map(function(b) { %>
883                            <tr>
884                                <td><%= b.screening_start_at.format("DD.MM.YYYY HH[h]mm") %> -
885                                    <%= b.screening_stop_at.format("HH[h]mm") %></td>
886                                <td><%= b.screening.getTitle() %></td>
887                                <td><%= b.screening.cinema_hall.name %></td>
888                                <td class="text-center">
889                                    <% if (b.scanned_at.length) { %>
890                                        <i class="tkt-icon-checkmark"></i>
891                                    <% } %>
892                                </td>
893                                <td>
894                                    <div class="flex-col items-end">
895                                        <% if (b.isCancelable) { %>
896                                            <a href="#" class="btn btn-danger btn-bloc cancel-booking-btn" data-booking-id="<%= b._id %>">
897                                                Annuler                                            </a>
898                                        <% } %>
899                                        <% if (votesConfig?.enabled && (b.vote || !b.screening.opaque?.disable_votes)) { %>
900                                            <% const { votable, reason } = b.isVotable(); %>
901                                            <div
902                                                data-component="Ui/Rating"
903                                                data-score="<%= b.vote?.score || 0 %>"
904                                                data-ticket-id="<%= b.ticket_id %>"
905                                                data-booking-id="<%= b._id %>"
906                                                data-size="24"
907                                                data-step="<%= votesConfig?.step %>"
908                                                data-max="<%= votesConfig?.max_score %>"
909                                                data-disabled-reason="<%= reason ? errors[reason] : '' %>"
910                                            ></div>
911                                            <% if (reason) { %>
912                                                <small>
913                                                    <i class="tkt_icon_warning" />
914                                                    <%= errors[reason] %>
915                                                </small>
916                                            <% } %>
917                                        <% } %>
918                                    </div>
919                                </td>
920                            </tr>
921                            <% }) %>
922                        <tbody>
923                    </table>
924                    <div class="cancelable_booking_err text-danger text-center"></div>
925                <% } %>
926
927                <% if (pastBookings.length) { %>
928                    <h3>Réservations passées</h3>
929                    <table class="table table-striped table-hover no-more-tables">
930                        <thead>
931                            <tr>
932                                <th>Date</th>
933                                <th>Réservation</th>
934                                <th>Lieu</th>
935                                <th><i class="tkt-icon-smartphone"></i></th>
936                                <th></th>
937                            </tr>
938                        </thead>
939                        <tbody>
940                            <% pastBookings.map(function(b) { %>
941                            <tr>
942                                <td><%= b.screening_start_at.format("DD.MM.YYYY HH[h]mm") %> -
943                                    <%= b.screening_stop_at.format("HH[h]mm") %></td>
944                                <td><%= b.screening.getTitle() %></td>
945                                <td><%= b.screening.cinema_hall.name %></td>
946                                <td class="text-center">
947                                    <% if (b.scanned_at.length) { %>
948                                        <i class="tkt-icon-checkmark"></i>
949                                    <% } %>
950                                </td>
951                                <td>
952                                    <% if (votesConfig?.enabled && (b.vote || !b.screening.opaque?.disable_votes)) { %>
953                                        <% const { votable, reason } = b.isVotable(); %>
954                                        <div
955                                            data-component="Ui/Rating"
956                                            data-score="<%= b.vote?.score || 0 %>"
957                                            data-ticket-id="<%= b.ticket_id %>"
958                                            data-booking-id="<%= b._id %>"
959                                            data-size="24"
960                                            data-step="<%= votesConfig?.step %>"
961                                            data-max="<%= votesConfig?.max_score %>"
962                                            data-disabled-reason="<%= reason ? errors[reason] : '' %>"
963                                        ></div>
964                                        <% if (reason) { %>
965                                            <small>
966                                                <i class="tkt_icon_warning" />
967                                                <%= errors[reason] %>
968                                            </small>
969                                        <% } %>
970                                    <% } %>
971                                </td>
972                            </tr>
973                            <% }) %>
974                        <tbody>
975                    </table>
976                    <div class="cancelable_booking_err text-danger text-center"></div>
977                <% } %>
978            <% } %>
979            <a class="btn button w-100" href="<%= program_url %>">
980                Réserver des séances            </a>
981        </section>
982
983        <% } %>
984        <!-- Owner -->
985        <% if (ticket?.hasContactInfo()) { %>
986        <section class="tkt-section tkt-dark-section mt-3">
987            <h3 class="panel-title">Titulaire</h3>
988            <div class="text-center">
989                <% if (ticket.contact?.rfc2397_portrait?.length) { %>
990                    <img class="img-responsive img-thumbnail" src="<%= ticket.contact?.rfc2397_portrait %>" />
991                    <br />
992                <% } %>
993
994                <% if (ticket.contact?.firstname || ticket.contact?.lastname) { %>
995                <h5>
996                    <%= [ticket.contact.firstname, ticket.contact.lastname].filter(v => !!v).join(' ') %>
997                </h5>
998                <% } %>
999
1000                <div>
1001                    <% if (ticket.contact?.birthdate) { %>
1002                        <%= new Date(ticket.contact.birthdate).toLocaleDateString() %>
1003                        <br />
1004                    <% } %>
1005
1006                    <% if (ticket.contact?.address?.street) { %>
1007                        <%= ticket.contact.address.street %>
1008                        <br />
1009                    <% } %>
1010
1011                    <% if (ticket.contact?.address?.zip || ticket.contact?.address?.city) { %>
1012                        <%= [ticket.contact.address.zip, ticket.contact.address.city].filter(v => !!v).join(' ') %>
1013                        <br />
1014                    <% } %>
1015
1016                    <% if (ticket.contact?.address?.country) { %>
1017                        <%= tktCountryDisplay(ticket.contact.address.country) %>
1018                        <br />
1019                    <% } %>
1020
1021                    <% if (ticket.contact?.email) { %>
1022                        <%= ticket.contact.email %>
1023                    <% } %>
1024                </div>
1025            </div>
1026        </section>
1027        <% } %>
1028
1029        <!-- Guests -->
1030        <% if (ticket?.hasGuestsInfo()) { %>
1031        <section class="tkt-section tkt-dark-section mt-3">
1032            <h3 class="panel-title">Invités</h3>
1033            <div class="text-center">
1034                <% ticket.getGuestsInfo().forEach(guest => { %>
1035                    <h5>
1036                        <%= [guest.firstname, guest.lastname].filter(v => !!v).join(' ') %><br />
1037                        <small><%= guest.email %></small>
1038                    </h5>
1039                <% }); %>
1040            </div>
1041        </section>
1042        <% } %>
1043
1044        <% if (ticket.getWalletBalance() > 0) { %>
1045        <div class="row">
1046            <div class="col">
1047                <section class="tkt-section tkt-light-section mt-3">
1048                    <div class="panel-heading wallet_info">
1049                        <h3 class="panel-title">Portefeuille électronique</h3>
1050                    </div>
1051                    <div class="panel-body wallet_info text-center">
1052                        <div class="text-center">
1053                            <h4><%= ticket.getFormattedWalletBalance() %></h4>
1054                        </div>
1055                    </div>
1056                </section>
1057            </div>
1058        </div>
1059        <% } %>
1060
1061        <div class="row">
1062            <div class="col">
1063                <section class="tkt-section tkt-light-section mt-3">
1064                    <div class="panel-heading">
1065                        <h3 class="panel-title">Validité</h3>
1066                        <div class="panel-body">
1067                            <% if (!ticket.isNew()) { %>
1068                            <div class="well text-center">
1069                                <% if (ticket.activated_at) { %>
1070                                <h5>
1071                                Activé le <%= ticket.activated_at.format("LL") %>                                </h5>
1072                                <% if (ticket.getActivatedPricingName()) { %>
1073                                <p>Tarif : <%= ticket.getActivatedPricingName() %>
1074                                    (<%= ticket.getFormattedPriceAndCurrency() %>)
1075                                </p>
1076                                <% } %>
1077                                <% } %>
1078                            </div>
1079                            <% if (ticket.getExpirationDate()) { %>
1080                                <% if (ticket.hasExpired()) { %>
1081                                    <div class="text-center alert alert-danger">
1082                                        <b>A expiré le <%= ticket.getExpirationDate().format('LL') %> </b>
1083                                    </div>
1084                                <% } else {%>
1085                                    <div class="text-center alert alert-success">
1086                                        <b>Valable jusqu'au <%= ticket.getExpirationDate().format('LL') %></b>
1087                                        <p>
1088                                            <%= ticket.placesAvailable() %>
1089                                        </p>
1090                                    </div>
1091                                <% } %>
1092                            <% } %>
1093                            <% } else { %>
1094                            <div class="text-center alert alert-info w-100">
1095                                <b>Ce billet n&#039;a pas encore été activé</b>
1096                            </div>
1097                            <div id="pricings-list" class="tkt-pricings-list">
1098                                <div class="card-header tkt-light-section">
1099                                    <h5 class="card-title">
1100                                        <b>Activation :</b>
1101                                    </h5>
1102                                    <table>
1103                                        <tr>
1104                                            <th>Tarifs</th>
1105                                            <th>Prix</th>
1106                                        </tr>
1107                                        <% Object.entries(ticket.pricings || {}).map(function(entry) {
1108                                            const key = entry[0];
1109                                            const p = entry[1] || {};
1110                                            const onlyOne = Object.keys(ticket.pricings || {}).length === 1;
1111                                        %>
1112                                        <tr>
1113                                            <td>
1114                                            <% if ((p.description?.fr || '').length > 0) { %>
1115                                                <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>
1116                                            <% } else { %>
1117                                                <input class="choose-pass" type="radio" name="user[pass]" value="<%= key %>" <%= onlyOne ? 'checked' : '' %>> <%= p.name?.fr || key %>
1118                                            <% } %>
1119                                            </td>
1120                                            <td><%= Object.keys(p.price || {})[0] + " " + parseFloat(Object.values(p.price || {})[0] || 0).toFixed(2) %></td>
1121                                        </tr>
1122                                        <% }) %>
1123                                    </table>
1124                                </div>
1125                            </div>
1126
1127                            <div class="alert alert-danger ticket-pay-error d-none" role="alert"></div>
1128
1129                            <div class="d-flex justify-content-between pt-3">
1130                                <button class="btn bg-success add_to_cart-btn">
1131                                    <i class="tkt-icon-credit-card"></i> Payer votre <%= ticket.getTypeName() %>                                </button>
1132                                <button class="btn bg-dark forget-ticket-btn align-items-end">
1133                                    <i class="tkt-icon-sign-out"></i> Déconnexion                                </button>
1134                            </div>
1135                            <% } %>
1136                        </div>
1137                    </div>
1138                </section>
1139            </div>
1140        </div>
1141        <% if (!ticket.isNew() && ticket.isForgettable) { %>
1142        <div class="row mt-3">
1143            <div class="col">
1144                <button class="btn button forget-ticket-btn w-100">
1145                    <i class="tkt-icon-log-out"></i> Retirer ce billet de mon navigateur                </button>
1146            </div>
1147        </div>
1148        <% } %>
1149    </div>
1150    <% } %>
1151</script>
1151
1152
1153<script type="text/template" id="tkt-ticket-connect-tpl">
1154    <% if (!ticket)  { %>
1155    <div class="tkt-ticket-connect">
1156        <div class="connect-panel">
1157            <div class="ticket_connect">
1158                <div>
1159                    Entrez votre <span class="tkt-ticketid_ticket">Ticket</span><span class="tkt-ticketid_id">ID</span>                </div>
1160                <div class="col">
1161                    <div class="row mt-5 input-pass">
1162                        <input id="pass-id" type="number"
1163                            class="tkt-input input-invert form-control text-center pass-number-input"
1164                            placeholder="123456" maxlength="6" />
1165                        <p class="minus">-</p>
1166                        <input id="pass-code" type="password"
1167                            class="tkt-input input-invert form-control text-center pass-key-input"
1168                            placeholder="abcdef" maxlength="6" />
1169                    </div>
1170                </div>
1171                <div class="row">
1172                    <div class="col text-center">
1173                        <div class="error pass-error d-none text-center text-danger"></div>
1174                        <button class="btn btn-primary button login-btn connect-btn mt-5 mb-3">
1175                            <i class="tkt-icon-log-out"></i> Connexion                        </button>
1176                    </div>
1177                </div>
1178                <hr />
1179                <div>
1180                    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>
1181            </div>
1182        </div>
1183    </div>
1184    <% } %>
1185
1186    <%
1187    jQuery(document).ready(function($) {
1188        $("#pass-id").keyup(function() {
1189            if (this.value.length == this.maxLength) {
1190                $('#pass-code').focus();
1191            }
1192        });
1193    });
1194    %>
1195</script>
1195
1196                        </div>
1197                  </div>
1198        <hr class="row">
1199        <div class="mb-2">
1200          <div data-rocket-location-hash="2ad2aa4c2e18f40f78a62ce5ddab58b1" class="h2 mb-1">
1201            Vous êtes accrédité·e?          </div>
1202          <div class="h4 mb-1">
1203            Connectez-vous avec votre compte Eventival          </div>
1204          <p>
1205            Vous pourrez ainsi accéder aux services du Geneva Digital Market et réserver vos séances.          </p>
1206              <div data-rocket-location-hash="198b0bfee8f0781ad2749c4f2b98d81e" 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">
1207      <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>
1208          Connectez-vous avec Eventival        </span> </button>
1209    </div>
1210    <div data-rocket-location-hash="8a9a3ad6aaae72f1a930deb7fa30622b" 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">
1211      <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">
1212      <span>
1213                Connexion fermée      </span>
1214    </a>
1215  </div>
1216  <div data-rocket-location-hash="3a7cbd69cea823c68e2c81dc1ea2f966" class="ev_logout-btn mb-3 d-none">
1217    <button type="button"
1218      class="btn btn-outline-primary btn-eventival"
1219      onclick="document.cookie = 'dbl_user=; Max-Age=0; path=/;'; window.location.reload();">
1220      <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">
1221      <span>
1222        Déconnexion      </span>
1223    </button>
1224  </div>
1225  <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>  
1225<script>
1226
1227  </script>
1227
1228        </div>
1229      </div>
1230    </div>
1231  </div>
1232</div>
1233<script type="speculationrules">
1234{"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"}]}
1235</script>
vendor: 1 bytes, line 1235
1235
1236<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 1236
1236
1237<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 1237
1237
1238<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 1238
1238
1239<script id="user-js-after">
1240window.addEventListener('DOMContentLoaded', (event) => {
1241    setup_user();
1242  })
1243</script>
vendor: 1 bytes, line 1243
1243
1244<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 1244
1244
1245<script id="access-js-after">
1246document.addEventListener('DOMContentLoaded', (event) => {
1247  //access_projects_nav();
1248  //access_meetings_nav();
1249  //access_whoshow_user_data();
1250  update_login_header_btn();
1251  tktConnect()
1252  logout_user()
1253  })
1254document.addEventListener("DOMContentLoaded", (event) => {
1255        display_popup_on_error()
1256    })
1257window.addEventListener('DOMContentLoaded', (event) => {
1258  access_dbl_login();
1259  });
1260</script>
vendor: 1 bytes, line 1260
1260
1261<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 1261
1261
1262<script id="rocket-browser-checker-js-after">
1263"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}();
1264</script>
vendor: 1 bytes, line 1264
1264
1265<script id="rocket-preload-links-js-extra">
1266var 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"};
1267</script>
vendor: 1 bytes, line 1267
1267
1268<script id="rocket-preload-links-js-after">
1269(function() {
1270"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();
1271}());
1272</script>
vendor: 1 bytes, line 1272
1272
1273<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 1273
1273
1274<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 1274
1274
1275<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 1275
1275
1276<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 1276
1276
1277<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 1277
1277
1278<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 1278
1278
1279<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 1279
1279
1280<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 1280
1280
1281<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 1281
1281
1282<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 1282
1282
1283<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 1283
1283
1284<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 1284
1284
1285<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 1285
1285
1286<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 1286
1286
1287<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 1287
1287
1288<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 1288
1288
1289<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 1289
1289
1290<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>
1290
1291    
1291<script type="text/template" id="tkt-booking-form-dates-tpl">
1292        <% screenings = _.filter(screenings, function (s) { return s.stop_at > new Date(); }); %>
1293<% if (screenings.length > 1) { %>
1294<%
1295    var m = {};
1296    _.forEach(screenings, function(s) {
1297        var day = s.start_at.format("dddd D MMMM");
1298        if (!m[day])
1299            m[day] = [];
1300        m[day].push(s);
1301    });
1302
1303
1304    var dates = [];
1305    _.forEach(screenings, function(s) {
1306        var day = s.start_at.format("YYYY-MM-DD");
1307        if (dates.indexOf(day) === -1)
1308            dates.push(day);
1309    });
1310%>
1311
1312<div class="tkt-wrapper">
1313    <div class="row">
1314        <div class="col">
1315            <span>
1316                Veuillez choisir la date désirée :            </span>
1317            <div class="days-wrapper">
1318                <% if (Object.keys(m).length > 6) { %>
1319                    <input
1320                        id="calendar"
1321                        type="text"
1322                        class="tkt-input form-control data-field"
1323                        data-component="Form/Calendar"
1324                        required
1325                        data-alt-format="l j F" 
1326                        data-enable="<%= dates.join(',') %>"
1327                        data-inline="true"
1328                    />
1329
1330                <% } else { %>
1331                    <% _.forEach(Object.keys(m), function(day) { %>
1332                    <span
1333                        class="tkt-badge tkt-light-badge day"
1334                        data-day="<%= day %>"
1335                        data-ymd="<%= m[day][0].start_at.format('YYYY-MM-DD') %>"
1336                        data-screening_id="<%= _.map(m[day], function (s) { return s._id; }).join(',') %>">
1337                        <%= day %>
1338                    </span>
1339                    <% }) %>
1340                <% } %>
1341            </div>
1342
1343            <br/>
1344
1345            <span>
1346                Veuillez choisir l&#039;heure désirée :            </span>
1347            <div class="dates-wrapper">
1348                <% _.forEach(m, function(screenings, day) { %>
1349                    <% _.forEach(screenings, function(s) { %>
1350                    <span
1351                        class="tkt-badge tkt-light-badge date"
1352                        data-day="<%= day %>"
1353                        data-ymd="<%= s.start_at.format('YYYY-MM-DD') %>"
1354                        data-screening_id="<%= s._id  %>"
1355                    >
1356                        <%= s.start_at.format("LT") %>
1357
1358                        <% if (s.opaque) { %>
1359                            <% if (s.opaque.version) { %>
1360                        <%= (' - ' + s.opaque.version) %>
1361                            <% } %>
1362                            <% if (s.opaque._3d) { %>
1363                        <%= ' - 3D' %>
1364                            <% } %>
1365                        <% } %>
1366                        <%= ' - ' + s.cinema_hall.name %>
1367                    </span>
1368                    <% }) %>
1369                <% }) %>
1370            </div>
1371
1372            <br/>
1373
1374        </div>
1375    </div>
1376</div>
1377<% } else if (screenings.length == 1) { %>
1378<span data-screening_id="<%= screenings[0]._id %>" class="date single-date">
1379    <%= screenings[0].start_at.format("dddd D MMMM") %> à <%= screenings[0].start_at.format("LT") + ' - ' + screenings[0].cinema_hall.name %></span>
1380<% } else { %>
1381<span>Il n&#039;y a pas de billetterie disponible pour cet événement.</span>
1382<% } %>
1383    </script>
1383
1384    
1384<script type="text/template" id="tkt-booking-form-pricings-tpl">
1385        
1386<%
1387    var uiLang = 'fr';
1388    var localize = function (obj) {
1389        return (TKTLib && TKTLib.StringsHelper)
1390            ? (TKTLib.StringsHelper.getLocalizedValue(obj, uiLang) || '')
1391            : '';
1392    };
1393%>
1394<% const availabilities = bookability?.availabilities; %>
1395<% const eligible_types = (bookability?.eligible_types || screening?.eligible_types || []).filter(t => t._id != 'one-time-pass'); %>
1396<% const sellable_types = eligible_types.filter(t => !!t.sellable); %>
1397<%
1398    const sorted_pricings = _.chain((screening && screening.pricings) ? screening.pricings : {})
1399        .map(function (pricing, key) {
1400            const opaque = pricing && pricing.opaque ? pricing.opaque : {};
1401            const weight = parseFloat(opaque.eshop_sort_weight);
1402            return {
1403                key,
1404                pricing,
1405                weight: isFinite(weight) ? weight : Number.POSITIVE_INFINITY
1406            };
1407        })
1408        .sortBy(function (item) { return item.key; })
1409        .sortBy(function (item) { return item.weight; })
1410        .value();
1411%>
1412<%
1413    const ticket_cannot_book_explanation = function (_id) {
1414        bookability.tickets = bookability.tickets || {};
1415        return bookability.tickets[_id]?.cannot_book_explanation;
1416    }
1417%>
1418
1419<div class="tkt-wrapper">
1420    <% if (_.keys(screening.pricings).length) { %>
1421        <% if ('map_only_bookings' in screening.opaque && screening.opaque.map_only_bookings) { %>
1422            <div class="row">
1423                <div class="col">
1424                    <iframe width="100%" style="min-height: 500px" frameborder="0" title="Plan de salle" src="<%= TKTLib.EshopUrlHelper.getScreeningMapUrl(screening._id) %>"></iframe>
1425                </div>
1426            </div>
1427        <% } else if (show_pricings) { %>
1428            <% if (!availabilities || availabilities.me['right-now']['one-time-pass'] > 0) { %>
1429                <h4>Acheter des places</h3>
1430                <div class="pricings-form">
1431                    <div class="row">
1432                        <div class="col">
1433                            <span>
1434                                Saisissez le nombre de place(s) que vous souhaitez ajouter à votre panier :                            </span>
1435                        </div>
1436                    </div>
1437                    <% _.each(sorted_pricings, function(item) { const p = item.pricing; const key = item.key; const cannot_book = p.cannot_book_reason; %>
1438                    <div class="row pricing-row<%= cannot_book ? ' unavailable text-muted' : '' %>" data-pricing-wrapper="<%= key %>"<%= cannot_book ? ' style="opacity:0.55"' : '' %>>
1439                        <div class="col">
1440                            <% if (cannot_book) { %>
1441                            <span class="tkt-badge tkt-badge-split flex-rev-on-mobile">
1442                                <span class="tkt-badge-part tkt-light-badge text-center">
1443                                    <span class="pricing-qty">0</span>
1444                                    x
1445                                    <span class="pricing-name">
1446                                        <% var pricing_name = localize(p.name); %>
1447                                        <%= pricing_name %> :
1448                                        <% var pricing_description = localize(p.description); %>
1449                                        <% if (pricing_description) { %>
1450                                            <span class="d-none tkt-tippy-content" id="tippy-pricing-desc-<%= key %>"><%= pricing_description %></span>
1451                                            <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>
1452                                        <% } %>
1453                                    </span>
1454                                    <span class="pricing-price">
1455                                        <% if (p.variable_price) { %>
1456                                            <% var minAmtU = p.min_price && p.min_price.CHF; %>
1457                                            <% if (minAmtU != null) { %>
1458                                                dès <%= typeof minAmtU.toFixed === 'function' ? minAmtU.toFixed(2) : Number(minAmtU).toFixed(2) %> CHF                                            <% } else { %>
1459                                                Prix libre                                            <% } %>
1460                                        <% } else { %>
1461                                        <%= p.price.CHF.toFixed(2) %> CHF                                        <% } %>
1462                                    </span>
1463                                    <br><small class="text-danger"><%= cannot_book %></small>
1464                                </span>
1465                            </span>
1466                            <input type="hidden" data-pricing="<%= key %>
1466" class="input pricing-input" value="0"/>
1467                            <% } else { %>
1468                            <span class="tkt-badge tkt-badge-split flex-rev-on-mobile tkt-badge-plus-minus">
1469                                <span class="tkt-badge-part tkt-grey-badge tkt-minus-btn text-center">-</span>
1470                                <span class="tkt-badge-part tkt-light-badge text-center">
1471                                    <span class="pricing-qty">
1472                                        0
1473                                    </span>
1474                                    x
1475                                    <span class="pricing-name">
1476                                        <% var pricing_name = localize(p.name); %>
1477                                        <%= pricing_name %> :
1478                                        <% var pricing_description = localize(p.description); %>
1479                                        <% if (pricing_description) { %>
1480                                            <span class="d-none tkt-tippy-content" id="tippy-pricing-desc-<%= key %>"><%= pricing_description %></span>
1481                                            <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>
1482                                        <% } %>
1483                                    </span>
1484                                    <span class="pricing-price">
1485                                        <% if (p.variable_price) { %>
1486                                            <% var minAmt = p.min_price && p.min_price.CHF; %>
1487                                            <% if (minAmt != null) { %>
1488                                                dès <%= typeof minAmt.toFixed === 'function' ? minAmt.toFixed(2) : Number(minAmt).toFixed(2) %> CHF                                            <% } else { %>
1489                                                Prix libre                                            <% } %>
1490                                        <% } else { %>
1491                                        <%= p.price.CHF.toFixed(2) %> CHF                                        <% } %>
1492                                    </span>
1493                                </span>
1494                                <span class="tkt-badge-part tkt-dark-badge tkt-plus-btn text-center">+</span>
1495                            </span>
1496                            <input type="hidden" data-pricing="<%= key %>" class="input pricing-input" value="0"/>
1497                            <% if (p.variable_price) { %>
1498                            <% 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); })(); %>
1499                            <% 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; })(); %>
1500                            <div class="pricing-sale-price-wrap mt-2" data-pricing="<%= key %>" style="display:none;">
1501                                <label class="small mb-0 pricing-sale-price-label" for="pricing-sale-price-<%= key %>">
1502                                    Prix payé :
1503                                </label>
1504                                <div class="input-group input-group-sm pricing-sale-price-group">
1505                                    <div class="input-group-prepend">
1506                                        <span class="input-group-text">CHF</span>
1507                                    </div>
1508                                    <input
1509                                        type="number"
1510                                        step="0.05"
1511                                        <% if (vpMin > 0) { %>min="<%= vpMin %>"<% } %>
1512                                        class="form-control pricing-sale-price"
1513                                        id="pricing-sale-price-<%= key %>"
1514                                        data-pricing="<%= key %>"
1515                                        data-min-price="<%= vpMin %>"
1516                                        value="<%= vpDefault %>"
1517                                        onfocus="this.select()"
1518                                    />
1519                                </div>
1520                                <small class="pricing-sale-price-hint text-danger d-none" aria-live="polite"></small>
1521                            </div>
1522                            <% } %>
1523                            <% if (p.rules && p.rules.external_voucher) { %>
1524                            <div class="external-voucher-fields mt-2" data-pricing="<%= key %>" data-provider="<%= p.rules.external_voucher %>" style="display:none">
1525                                <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>
1526                                <div class="external-voucher-codes"></div>
1527                            </div>
1528                            <% } %>
1529                            <% } %>
1530                        </div>
1531                    </div>
1532                    <% }) %>
1533                    <div class="row">
1534                        <div class="col">
1535                            <div class="error pricings-error d-none"></div>
1536                            <button class="button add-to-cart-btn active" >
1537                                Ajouter à mon panier                            </button>
1538                        </div>
1539                    </div>
1540                </div>
1541            <% } else { %>
1542                <% const otp_messages = bookability?.one_time_pass_messages; %>
1543                <% if (otp_messages && otp_messages.parts && otp_messages.parts.length) { %>
1544                    <% _.each(otp_messages.parts, function(part) { %>
1545                    <h5 class="no-one-time-pass-message"><%= part %></h5>
1546                    <% }); %>
1547                <% } else if (availabilities && availabilities['me']['from-now']['one-time-pass'] > 0) { %>
1548                    <h5 class="no-one-time-pass-message">
1549                        Il n&#039;est pas encore possible d&#039;acheter des tickets en ligne pour cette séance.                    </h5>
1550                <% } else if (availabilities && availabilities['me']['absolute']['one-time-pass'] > 0) { %>
1551                    <h5 class="no-one-time-pass-message">
1552                        Tickets disponibles uniquement sur place                    </h5>
1553                <% } else { %>
1554                    <h5 class="no-one-time-pass-message">
1555                        Il n&#039;est pas possible d&#039;acheter des tickets en ligne pour cet événement.                    </h5>
1556                <% } %>
1557            <% } %>
1558        <% } %>
1559        <br/>
1560    <% } %>
1561
1562    <% if (show_ticket_id && screening.opaque && (!('map_only_bookings' in screening.opaque && screening.opaque.map_only_bookings)) && eligible_types.length) { %>
1563    <h4>Réserver des places sur vos billets</h3>
1564
1565    <div class="book-panel">
1566        <%
1567            account_tickets.filter(ticket => !ticket.isOneTimePass() && ticket.canBook(screening)).concat(
1568                connected_tickets.filter(ticket => !ticket.isOneTimePass()),
1569                account_tickets.filter(ticket => !ticket.isOneTimePass() && !ticket.canBook(screening)),
1570            ).map(ticket => {
1571        %>
1572        <div class="ticket-wrapper" data-ticket-id="<%= ticket._id %>">
1573            <div class="row">
1574                <div class="col col-auto ticket-infos">
1575                    <a class="btn btn-outline btn-sm text-left" target="_blank" href="<%= ticket.getTicketViewUrl() %>">
1576                        <i class="tkt-icon-tag"></i>
1577                        <b><%= ticket.getTypeName() %></b>
1578                        - <%= ticket.getDisplayName() %>
1579                    </a>
1580                    <% if (ticket.hasBooked(screening)) { %>
1581                    <div class="already-booked">
1582                        <small data-ticket-id="<%= ticket._id %>">
1583                            <b>Réservation pour cette séance avec ce billet : <%= ticket.getBookingsFor(screening)?.length || 0 %></b>
1584                        </small>
1585                    </div>
1586                    <% } %>
1587                </div>
1588                <div class="col text-right book-btns">
1589                    <% if (ticket.canBook(screening)) { %>
1590                        <button data-ticket-id="<%= ticket._id %>" class="button book-btn<%= ticket.hasBooked(screening) ? '-more' : '' %> active" >
1591                            <i class="tkt-icon-plus"></i>
1592                            <% if (ticket.hasBooked(screening)) { %>
1593                                Réserver une place de plus sur ce billet                            <% } else { %>
1594                                Réserver une place sur ce billet                            <% } %>
1595                        </button>
1596                    <% } else { %>
1597                    <small data-ticket-id="<%= ticket._id %>" class="cannot-book-explanation">
1598                        <i><%= ticket_cannot_book_explanation(ticket._id) %></i>
1599                    </small>
1600                    <% } %>
1601                </div>
1602            </div>
1603            <div class="row">
1604                <div class="col text-right">
1605                    <small class="success book-form-success d-none text-success pl-2">
1606                        Votre place a bien été réservée.                    </small>
1607                </div>
1608            </div>
1609            <div class="row">
1610                <div class="col text-right">
1611                    <small class="book-form-error d-none text-danger pl-2">
1612                    </small>
1613                </div>
1614            </div>
1615        </div>
1616        <% }) %>
1617    </div>
1618
1619    <div class="pass-form mt-3">
1620        <div class="connect-panel">
1621            <div class="ticket_connect">
1622                <div class="row">
1623                    <div class="col">
1624                        <span class="pass-title">
1625                            Entrez votre <span class="tkt-ticketid_ticket">Ticket</span><span class="tkt-ticketid_id">ID</span>
1626                            <a href="" class="show-connect-panel-form">Ajoutez-le</a> pour réserver.<br/>
1627                    </span>
1628                    </div>
1629                </div>
1630                <div class="connect-panel-form d-none">
1631                    <div class="col">
1632                        <div class="row mt-5 input-pass">
1633                            <input id="pass-id" type="number" class="tkt-input input-invert form-control text-center pass-number-input" placeholder="123456" maxlength="6"/>
1634                            <p class="minus">-</p>
1635                            <input id="pass-code" type="password" class="tkt-input input-invert form-control text-center pass-key-input" placeholder="abcde" maxlength="6"/>
1636                        </div>
1637                    </div>
1638
1639                    <div class="row">
1640                        <div class="col text-center">
1641                            <div class="error pass-error d-none text-center text-danger"></div>
1642                            <button class="btn btn-primary button login-btn connect-btn mt-5 mb-3">
1643                                <i class="tkt-icon-sign-in-alt"></i> Connexion                            </button>
1644                        </div>
1645                    </div>
1646                    <hr>
1647                    <div>
1648                    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>
1649                    <br>
1650                </div>
1651            </div>
1652                        <% if (sellable_types.length > 0) { %>
1653            <div class="row">
1654                <div class="col mt-3">
1655                    <div class="buy-pass-link">
1656                        <span>Acheter un abonnement</span>
1657                        <ul class="eligible-types-list">
1658                        <% sellable_types.map(function (t) { %>
1659                        <li class="eligible-type">
1660                            <span class="type-name">
1661                                <i class="tkt-icon-ticket"></i>
1662                                <a href="https://www.giff.ch/billetterie/?selected=<%= t._id %>" class="type-link">
1663                                    <%= t.name.fr %>
1664                                </a>
1665                            </span>
1666                        </li>
1667                        <% }); %>
1668                        </ul>
1669                    </div>
1670                </div>
1671            </div>
1672            <% } %>
1673                    </div>
1674    </div>
1675    <% } %>
1676
1677</div>
1678    </script>
1678
1679    
1679<script type="text/template" id="tkt-booking-form-success-tpl">
1680        <div class="tkt-wrapper">
1681    <div class="row">
1682        <div class="col">
1683            <h3 class="success-title">
1684                Merci, votre commande est réservée dans votre panier pour 30 minutes.            </h3>
1685            <div class="float-right text-right">
1686                <a href="<%= cart_url %>" class="button show-cart-btn active" >
1687                    Accéder au panier                </a>
1688                <div class="continue-shopping" >
1689                    <a href="<%= program_url %>">Continuer ma visite</a>
1690                </div>
1691            </div>
1692        </div>
1693    </div>
1694</div>
1695    </script>
1695
1696
1697        
1697<script>
1698            (function () {
1699                var jq = window.tktjQuery || window.jQuery;
1700                if (typeof jq === "function") {
1701                    /* Restore WP jQuery if a theme snippet (MailChimp noConflict(true))
1702                       or a CMP removed the globals after jquery.js ran. */
1703                    window.jQuery = jq;
1704                    window.$ = jq;
1705                }
1706            })();
1707            // moment locale must be injected globally because it's needed
1708            // before the config initialization
1709            window.moment_locale = "fr_FR";
1710            window.moment_timezone = "Europe/Zurich";
1711            window.tkt_config = {
1712                "version": "1",
1713                "base_url": "https://www.giff.ch/",
1714                "engine_uri": "https://giff-engine.ticketack.com/",
1715                "eshop_uri": "https://giff.ticketack.com/",
1716                "api_key": "c5415263-df61-4835-80d0-eedaacf64572",
1717                "salepoint_id": "",
1718                "cashregister_id": "",
1719                "edition": "2026",
1720                "program_url": "https://www.giff.ch/programme/",
1721                "ticket_view_url": "https://www.giff.ch/billetterie/ticket/",
1722                "shop_url": "",
1723                "cart_url": "https://www.giff.ch/panier/",
1724                "cart_reset_url": "https://giff.ticketack.com/cart/reset",
1725                "checkout_url": "https://www.giff.ch/panier/",
1726                "login_url": "",
1727                "buy_pass_url": "https://www.giff.ch/billetterie/",
1728                "registration_url": "",
1729                "user_account_url": "",
1730                "privacy_policy_url": "https://www.giff.ch/politique-de-confidentialite/",
1731                "terms_conditions_url": "https://www.giff.ch/billetterie/conditions-de-vente/",
1732                "eshop_registration_enabled": false,
1733                "buyer_requested_fields": ["firstname","lastname","email","age","zip"],
1734                "buyer_required_fields": ["firstname","lastname","email","age","zip"],
1735                "otp_requested_fields": [],
1736                "otp_required_fields": [],
1737                "lang": "fr",
1738                "i18n": {
1739    "Veuillez choisir au moins un billet": "Veuillez choisir au moins un billet",
1740    "Veuillez remplir les deux champs": "Veuillez remplir les deux champs",
1741    "Les informations que vous avez saisies sont invalides": "Les informations que vous avez saisies sont invalides",
1742    "Une erreur est survenue. Veuillez r\u00e9-essayer ult\u00e9rieurement.": "Une erreur est survenue. Veuillez r\u00e9-essayer ult\u00e9rieurement.",
1743    "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.",
1744    "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.",
1745    "Veuillez choisir un tarif": "Veuillez choisir un tarif",
1746    "Votre panier a \u00e9t\u00e9 mis \u00e0 jour": "Votre panier a \u00e9t\u00e9 mis \u00e0 jour",
1747    "Code promo invalide": "Code promo invalide",
1748    "Impossible d'utiliser ce code promo": "Impossible d'utiliser ce code promo",
1749    "Le code promo a bien \u00e9t\u00e9 pris en compte": "Le code promo a bien \u00e9t\u00e9 pris en compte",
1750    "Vous disposez de": "Vous disposez de",
1751    "sur votre porte monnaie \u00e9lectronique": "sur votre portefeuille \u00e9lectronique",
1752    "Montant trop \u00e9lev\u00e9": "Montant trop \u00e9lev\u00e9",
1753    "Portefeuille appliqu\u00e9 avec succ\u00e8s": "Portefeuille appliqu\u00e9 avec succ\u00e8s",
1754    "Impossible d'utiliser votre portefeuille": "Impossible d'utiliser votre portefeuille",
1755    "title": "Nom",
1756    "name": "Nom",
1757    "firstname": "Pr\u00e9nom",
1758    "lastname": "Nom",
1759    "email": "E-mail",
1760    "password": "Mot de passe",
1761    "address": "Adresse",
1762    "street": "Rue",
1763    "zip": "Code postal",
1764    "city": "Ville",
1765    "country": "Pays",
1766    "phone": "T\u00e9l\u00e9phone",
1767    "cellphone": "T\u00e9l\u00e9phone portable",
1768    "email2": "Confirmation e-mail",
1769    "company": "Entreprise",
1770    "conditions": "Conditions",
1771    "comment": "Commentaires",
1772    "photo": "Photo",
1773    "gift_message": "Message cadeau",
1774    "Ticket": "Ticket",
1775    "birthdate": "Date de naissance",
1776    "rfc2397_portrait": "Photo",
1777    "age": "\u00c2ge",
1778    "sex": "Sexe",
1779    "language": "Langue",
1780    "Les adresses e-mail ne correspondent pas.": "Les adresses e-mail ne correspondent pas.",
1781    "ENOTSUP": "n'est pas support\u00e9",
1782    "ENOPROP": "est manquant",
1783    "EDUPLICATE": "existe d\u00e9j\u00e0",
1784    "EISNOTSTRING": "n'est pas une chaine de caract\u00e8re",
1785    "EEMPTY": "est vide",
1786    "ETOOSHORT": "est trop court",
1787    "ETOOBIG": "est trop grand",
1788    "EINVAL": "est invalide",
1789    "EISNOTOBJ": "n'est pas un objet",
1790    "EISNOTARRAY": "n'est pas un tableau",
1791    "EISNOTBOOL": "n'est pas un bool\u00e9en",
1792    "PENDING_STATUS": "En attente",
1793    "OPEN": "En cours",
1794    "PAYING": "Paiement en cours",
1795    "PAID": "Pay\u00e9e",
1796    "COMPLETED": "Termin\u00e9e",
1797    "ACTIVATION_ERROR": "Erreur",
1798    "CANCELED": "Annul\u00e9e",
1799    "POSTFINANCE": "Postfinance",
1800    "PROXYPAY": "Proxypay",
1801    "ESHOP_TRANSFER": "Virement",
1802    "NULL_PAYMENT": "Gratuit",
1803    "LATER_PAYMENT": "R\u00e9servation",
1804    "POS_CASH": "Esp\u00e8ces",
1805    "POS_CASH_COLLECTOR": "Monnayeur",
1806    "POS_SUMUP": "Carte bancaire",
1807    "POS_OTHER_EFT": "Carte bancaire",
1808    "POS_ZVT_EFT": "Carte bancaire",
1809    "POS_WALLET": "Portefeuille",
1810    "POS_TRANSFER": "Virement",
1811    "ACTIVATED": "Activ\u00e9",
1812    "NEW": "Inactif",
1813    "PENDING": "En attente de paiement",
1814    "BLOCKED": "Bloqu\u00e9",
1815    "Director": "directeur",
1816    "Directors": "directeurs",
1817    "r\u00e9servation": "r\u00e9servation",
1818    "r\u00e9servations": "r\u00e9servations",
1819    "sur": "sur",
1820    "disponible": "disponible",
1821    "disponibles": "disponibles"
1822}
1823            };
1824            (function () {
1825                function normalizeCountryLabel(value) {
1826                    return String(value || "").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-z0-9]/g, "");
1827                }
1828                var aliasMap = null;
1829                function countryAliasMap() {
1830                    if (aliasMap) return aliasMap;
1831                    aliasMap = {
1832                        unknown: "", inconnu: "", sconosciuto: "",
1833                        cotedivoire: "CI", ivorycoast: "CI", kosovo: "XK",
1834                        zaire: "CD", yugoslavia: "YU", yougoslavie: "YU",
1835                        serbiaandmontenegro: "RS", netherlandsantilles: "AN",
1836                        unitedkingdom: "GB", uk: "GB", unitedstates: "US"
1837                    };
1838                    var skip = {
1839                        AC:1, AN:1, BU:1, CP:1, CQ:1, CS:1, DD:1, DG:1, DY:1, EA:1, EU:1, EZ:1,
1840                        FX:1, HV:1, IC:1, NH:1, QO:1, RH:1, SU:1, TA:1, TP:1, UK:1, UN:1, VD:1,
1841                        XA:1, XB:1, YD:1, YU:1, ZR:1, ZZ:1
1842                    };
1843                    var langs = ["en", "fr", "de", "it"];
1844                    var displayers = {};
1845                    langs.forEach(function (lang) {
1846                        try { displayers[lang] = new Intl.DisplayNames([lang], { type: "region" }); } catch (e) {}
1847                    });
1848                    for (var a = 65; a <= 90; a++) {
1849                        for (var b = 65; b <= 90; b++) {
1850                            var iso = String.fromCharCode(a) + String.fromCharCode(b);
1851                            if (!aliasMap[iso.toLowerCase()]) aliasMap[iso.toLowerCase()] = iso;
1852                            if (skip[iso]) continue;
1853                            langs.forEach(function (lang) {
1854                                var dn = displayers[lang];
1855                                if (!dn) return;
1856                                try {
1857                                    var name = dn.of(iso);
1858                                    if (name && name !== iso) aliasMap[normalizeCountryLabel(name)] = iso;
1859                                } catch (e) {}
1860                            });
1861                        }
1862                    }
1863                    return aliasMap;
1864                }
1865                window.tktCountryIso = function (value) {
1866                    var v = String(value == null ? "" : value).trim();
1867                    if (!v) return "";
1868                    if (/^[A-Za-z]{2}$/.test(v)) return v.toUpperCase();
1869                    return countryAliasMap()[normalizeCountryLabel(v)] || "";
1870                };
1871                window.tktCountryDisplay = function (value) {
1872                    if (value == null || String(value).trim() === "") return "";
1873                    var iso = window.tktCountryIso(value);
1874                    if (!iso) return String(value);
1875                    try {
1876                        var lang = (window.tkt_config && window.tkt_config.lang) || "fr";
1877                        return new Intl.DisplayNames([lang, "en"], { type: "region" }).of(iso) || iso;
1878                    } catch (e) {
1879                        return iso;
1880                    }
1881                };
1882            })();
1883        </script>
1883
1884        
1884<script>
1885            !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||[]);
1886            (function() {
1887                function boot() {
1888                var props = {
1889                    app: "wordpress",
1890                    lang: window.tkt_config && window.tkt_config.lang,
1891                    instance: "giff"
1892                };
1893                function stripQuery(value) {
1894                    if (typeof value !== "string" || value.indexOf("?") === -1) return value;
1895                    try {
1896                        var u = new URL(value, window.location.origin);
1897                        u.search = "";
1898                        u.hash = "";
1899                        return u.toString();
1900                    } catch (e) {
1901                        return value.split("?")[0];
1902                    }
1903                }
1904                function sanitizeProps(properties) {
1905                    if (!properties) return properties;
1906                    ["$current_url", "$initial_current_url", "$referrer", "url"].forEach(function (key) {
1907                        if (properties[key]) properties[key] = stripQuery(properties[key]);
1908                    });
1909                    return properties;
1910                }
1911                function applyGroup(client, memoSuffix) {
1912                    if (!client || !props.instance) return;
1913                    var instance = String(props.instance).slice(0, 100);
1914                    var name = String(props.instance).slice(0, 100);
1915                    var key = instance + "\0" + name;
1916                    var storeKey = "tkt_ph_instance_group" + (memoSuffix || "");
1917                    try {
1918                        if (client.__tkt_instance_group === key) return;
1919                        if (window.sessionStorage && sessionStorage.getItem(storeKey) === key) {
1920                            client.__tkt_instance_group = key;
1921                            return;
1922                        }
1923                    } catch (e) {}
1924                    try {
1925                        client.group("instance", instance, { name: name });
1926                        client.__tkt_instance_group = key;
1927                        try { sessionStorage.setItem(storeKey, key); } catch (e2) {}
1928                    } catch (e) {}
1929                }
1930                posthog.init("phc_kBHqpqfwyMyc5nn56qyoekDHCFE9GrLD4fFKt8ePoYQn", {
1931                    api_host: "https:\/\/eu.i.posthog.com",
1932                    person_profiles: "identified_only",
1933                    persistence: "localStorage+cookie",
1934                    capture_pageview: true,
1935                    capture_pageleave: true,
1936                    capture_performance: { web_vitals: true },
1937                    autocapture: false,
1938                    disable_session_recording: true,
1939                    disable_surveys: true,
1940                    advanced_disable_feature_flags: true,
1941                    sanitize_properties: sanitizeProps
1942                });
1943                try { posthog.register(props); } catch (e) {}
1944                applyGroup(posthog);
1945                var clientKey = "";
1946                if (clientKey) {
1947                    window.posthog_client = posthog.init(clientKey, {
1948                        api_host: "https:\/\/eu.i.posthog.com",
1949                        person_profiles: "identified_only",
1950                        persistence: "localStorage+cookie",
1951                        capture_pageview: true,
1952                        capture_pageleave: true,
1953                        capture_performance: { web_vitals: true },
1954                        autocapture: false,
1955                        disable_session_recording: true,
1956                        disable_surveys: true,
1957                        advanced_disable_feature_flags: true,
1958                        sanitize_properties: sanitizeProps
1959                    }, "ticketack_client");
1960                    try { window.posthog_client.register(props); } catch (e) {}
1961                    applyGroup(window.posthog_client, "_client");
1962                }
1963                }
1964                var started = false;
1965                function bootOnce() {
1966                    if (started) return;
1967                    started = true;
1968                    boot();
1969                }
1970                function cookieYesPresent() {
1971                    try {
1972                        if (typeof window.getCkyConsent === "function") return true;
1973                        if (document.getElementById("cookieyes")) return true;
1974                        if (document.querySelector("script[src*=cookieyes]")) return true;
1975                        if (/(?:^|; )cookieyes-consent=/.test(document.cookie)) return true;
1976                    } catch (e) {}
1977                    return false;
1978                }
1979                function wpConsentApiPresent() {
1980                    try {
1981                        if (typeof window.wp_has_consent === "function") return true;
1982                        if (document.documentElement && document.documentElement.getAttribute("data-wpconsent") != null) return true;
1983                        if (typeof window.wp_consent_type !== "undefined") return true;
1984                    } catch (e) {}
1985                    return false;
1986                }
1987                function cmpPresent() {
1988                    return cookieYesPresent() || wpConsentApiPresent();
1989                }
1990                function analyticsAllowed() {
1991                    try {
1992                        if (typeof window.getCkyConsent === "function") {
1993                            var c = window.getCkyConsent();
1994                            if (c && c.categories) return !!c.categories.analytics;
1995                        }
1996                    } catch (e) {}
1997                    try {
1998                        var m = document.cookie.match(/(?:^|; )cookieyes-consent=([^;]*)/);
1999                        if (m) {
2000                            return /(?:^|,)analytics:yes(?:$|,)/.test(decodeURIComponent(m[1]));
2001                        }
2002                    } catch (e2) {}
2003                    try {
2004                        if (typeof window.wp_has_consent === "function") {
2005                            if (window.wp_has_consent("statistics")) return true;
2006                            if (window.wp_has_consent("analytics")) return true;
2007                            return false;
2008                        }
2009                    } catch (e3) {}
2010                    return null;
2011                }
2012                function listenConsent() {
2013                    document.addEventListener("cookieyes_banner_load", function (e) {
2014                        var cats = e && e.detail && e.detail.categories;
2015                        if (cats && cats.analytics) bootOnce();
2016                    });
2017                    document.addEventListener("cookieyes_consent_update", function (e) {
2018                        var accepted = e && e.detail && e.detail.accepted;
2019                        if (accepted && accepted.indexOf && accepted.indexOf("analytics") !== -1) {
2020                            bootOnce();
2021                        } else if (analyticsAllowed() === true) {
2022                            bootOnce();
2023                        }
2024                    });
2025                    document.addEventListener("wp_listen_for_consent_change", function (e) {
2026                        var detail = e && e.detail;
2027                        if (detail && (detail.statistics === "allow" || detail.analytics === "allow")) {
2028                            bootOnce();
2029                            return;
2030                        }
2031                        if (analyticsAllowed() === true) bootOnce();
2032                    });
2033                    document.addEventListener("wp_consent_type_defined", function () {
2034                        if (analyticsAllowed() === true) bootOnce();
2035                    });
2036                }
2037                function schedule() {
2038                    if (!cmpPresent()) {
2039                        bootOnce();
2040                        return;
2041                    }
2042                    if (analyticsAllowed() === true) {
2043                        bootOnce();
2044                        return;
2045                    }
2046                    listenConsent();
2047                }
2048                if (typeof window.requestIdleCallback === "function") {
2049                    window.requestIdleCallback(schedule, { timeout: 3000 });
2050                } else {
2051                    window.setTimeout(schedule, 0);
2052                }
2053            })();
2054        </script>
2054
2055        
2055<script src="https://www.giff.ch/wp-content/plugins/ticketack/front/build/app.js?v=2.112.0.202609151713"></script>
vendor: 1 bytes, line 2055
2055
2056<script>var rocket_beacon_data = {"ajax_url":"https:\/\/www.giff.ch\/wp-admin\/admin-ajax.php","nonce":"2ee014aadb","url":"https:\/\/www.giff.ch\/early-bird","is_mobile":false,"width_threshold":1600,"height_threshold":700,"delay":500,"debug":null,"status":{"atf":true,"lrc":true,"preconnect_external_domain":true},"elements":"img, video, picture, p, main, div, li, svg, section, header, span","lrc_threshold":1800,"preconnect_external_domain_elements":["link","script","iframe"],"preconnect_external_domain_exclusions":["static.cloudflareinsights.com","rel=\"profile\"","rel=\"preconnect\"","rel=\"dns-prefetch\"","rel=\"icon\""]}</script>
2056<script data-name="wpr-wpr-beacon" src='https://www.giff.ch/wp-content/plugins/wp-rocket/assets/js/wpr-beacon.min.js' async></script>
2056</body>
2057
2058</html>
2059
2060<!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1790944209 -->

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.