PageSourceSearch

https://kardo-app.com/gallery/

html kardo-app.com collected 2026-09-24 14:45:55 UTC 95,053 bytes, 1,002 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-GB">
3<head>
4  <meta charset="UTF-8">
5  <meta name="viewport" content="width=device-width, initial-scale=1">
6  <title>Gallery — KARDO App | Play Smart. Play Sorted.</title>
7  <title>Gallery &#8211; KARDO</title>
8<meta name='robots' content='max-image-preview:large' />
9<script>Object.defineProperty(window,"angiePlugin",{value:{"schemaVersion":1,"available":true,"version":"1.1.17"},writable:false,configurable:false});</script>
9<link rel='dns-prefetch' href='//fonts.googleapis.com' />
10<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://kardo-app.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fkardo-app.com%2Fgallery%2F" />
11<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://kardo-app.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fkardo-app.com%2Fgallery%2F&#038;format=xml" />
12<style id="wp-img-auto-sizes-contain-inline-css">
13img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
14/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
15</style>
16<style id="wp-emoji-styles-inline-css">
17
18	img.wp-smiley, img.emoji {
19		display: inline !important;
20		border: none !important;
21		box-shadow: none !important;
22		height: 1em !important;
23		width: 1em !important;
24		margin: 0 0.07em !important;
25		vertical-align: -0.1em !important;
26		background: none !important;
27		padding: 0 !important;
28	}
29/*# sourceURL=wp-emoji-styles-inline-css */
30</style>
31<link rel='stylesheet' id='wp-block-library-css' href='https://kardo-app.com/wp-includes/css/dist/block-library/style.min.css?ver=7.1.2' media='all' />
32<style id="classic-theme-styles-inline-css">
33/*! This file is auto-generated */
34.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}
35/*# sourceURL=/wp-includes/css/classic-themes.min.css */
36</style>
37<style id="site-designer-shared-pattern-classes-inline-css">
38/* Dark cover/section overlay + on-dark text. */
39body .wp-site-blocks .is-style-overlay-dark .wp-block-cover__background { background-color: var(--wp--preset--color--base-3); color: var(--wp--preset--color--contrast-3); }
40.wp-block-cover.is-style-overlay-dark .wp-block-cover__background.has-background-dim { opacity: 0.50 !important; }
41:is(.wp-block-designsetgo-section, .wp-block-designsetgo-scroll-slides).is-style-overlay-dark { --dsgo-overlay-color: var(--wp--preset--color--base-3); --dsgo-overlay-opacity: 0.50; color: var(--wp--preset--color--contrast-3); }
42.dsgo-image-accordion-item.is-style-overlay-dark { --dsgo-overlay-color: var(--wp--preset--color--base-3); }
43.wp-block-group.has-background.is-style-overlay-dark { box-shadow: inset 0 0 0 9999px color-mix(in srgb, var(--wp--preset--color--base-3) 50%, transparent); }
44body .wp-site-blocks .is-style-overlay-dark, body .wp-site-blocks .is-style-on-dark { --dsgo-text-color: var(--wp--preset--color--contrast-3); color: var(--wp--preset--color--contrast-3) !important; }
45body .wp-site-blocks .is-style-overlay-dark :is(h1,h2,h3,h4,h5,h6,p,li,blockquote,cite), body .wp-site-blocks .is-style-on-dark :is(h1,h2,h3,h4,h5,h6,p,li,blockquote,cite) { color: var(--wp--preset--color--contrast-3) !important; }
46
47/* Solid dark section background + light text. */
48.is-style-bg-dark { background-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
49.is-style-bg-dark a { color: var(--wp--preset--color--base); }
50/*# sourceURL=site-designer-shared-pattern-classes-inline-css */
51</style>
52<style id="global-styles-inline-css">
53: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,rgb(6,147,227) 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,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 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%);
53--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 rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }: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;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.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;}
53.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;}
54:root :where(.wp-block-icon svg){width: 24px;}
55:where(.wp-block-gallery.is-layout-flex){gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}:where(.wp-block-gallery.is-layout-grid){gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}
56:where(.wp-block-latest-posts.is-layout-flex){gap: 1.25em;}:where(.wp-block-latest-posts.is-layout-grid){gap: 1.25em;}
57:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
58:where(.wp-block-term-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-term-template.is-layout-grid){gap: 1.25em;}
59:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
60:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
61/*# sourceURL=global-styles-inline-css */
62</style>
63<link rel='stylesheet' id='wp-theme-css' href='https://kardo-app.com/wp-includes/css/dist/theme/design-tokens.min.css?ver=7.1.2' media='all' />
64<link rel='stylesheet' id='wp-components-css' href='https://kardo-app.com/wp-includes/css/dist/components/style.min.css?ver=7.1.2' media='all' />
65<link rel='stylesheet' id='godaddy-styles-css' href='https://kardo-app.com/wp-content/mu-plugins/vendor/wpex/godaddy-launch/includes/Dependencies/GoDaddy/Styles/build/latest.css?ver=2.0.2' media='all' />
66<link rel='stylesheet' id='kardo-style-css' href='https://kardo-app.com/wp-content/themes/kardo-theme/style.css?ver=1.0.0' media='all' />
67<link rel='stylesheet' id='kardo-google-fonts-css' href='https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800;900&#038;family=Instrument+Sans:wght@400;500;600;700&#038;family=Space+Mono:wght@400;700&#038;display=swap' media='all' />
68<link rel='stylesheet' id='elementor-frontend-css' href='https://kardo-app.com/wp-content/plugins/elementor/assets/css/frontend.min.css?ver=4.3.1' media='all' />
69<link rel='stylesheet' id='widget-image-css' href='https://kardo-app.com/wp-content/plugins/elementor/assets/css/widget-image.min.css?ver=4.3.1' media='all' />
70<link rel='stylesheet' id='widget-nav-menu-css' href='https://kardo-app.com/wp-content/plugins/elementor-pro/assets/css/widget-nav-menu.min.css?ver=4.3.0' media='all' />
71<link rel='stylesheet' id='widget-heading-css' href='https://kardo-app.com/wp-content/plugins/elementor/assets/css/widget-heading.min.css?ver=4.3.1' media='all' />
72<link rel='stylesheet' id='widget-icon-list-css' href='https://kardo-app.com/wp-content/plugins/elementor/assets/css/widget-icon-list.min.css?ver=4.3.1' media='all' />
73<link rel='stylesheet' id='elementor-post-12-css' href='https://kardo-app.com/wp-content/uploads/elementor/css/post-12.css?ver=1790227855' media='all' />
74<link rel='stylesheet' id='elementor-post-245-css' href='https://kardo-app.com/wp-content/uploads/elementor/css/post-245.css?ver=1790227855' media='all' />
75<link rel='stylesheet' id='elementor-post-249-css' href='https://kardo-app.com/wp-content/uploads/elementor/css/post-249.css?ver=1790227855' media='all' />
76<link rel='stylesheet' id='elementor-gf-local-montserrat-css' href='https://kardo-app.com/wp-content/uploads/elementor/google-fonts/css/montserrat.css?ver=1753807419' media='all' />
77<link rel='stylesheet' id='elementor-gf-poppins-css' href='https://fonts.googleapis.com/css?family=Poppins:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&#038;display=swap' media='all' />
78<link rel='stylesheet' id='elementor-gf-figtree-css' href='https://fonts.googleapis.com/css?family=
78Figtree:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic&#038;display=swap' media='all' />
79<script id="jquery-core-js" src="https://kardo-app.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 79
79
80<script id="jquery-migrate-js" src="https://kardo-app.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
80
81<link rel="https://api.w.org/" href="https://kardo-app.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://kardo-app.com/wp-json/wp/v2/pages/368" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://kardo-app.com/xmlrpc.php?rsd" />
82<meta name="generator" content="WordPress 7.1.2" />
83<link rel="canonical" href="https://kardo-app.com/gallery/" />
84<link rel='shortlink' href='https://kardo-app.com/?p=368' />
85<meta name="generator" content="Elementor 4.3.1; features: e_font_icon_svg, additional_custom_breakpoints; settings: css_print_method-external, google_font-enabled, font_display-swap">
86			<style>
87				.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload),
88				.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) * {
89					background-image: none !important;
90				}
91				@media screen and (max-height: 1024px) {
92					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload),
93					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload) * {
94						background-image: none !important;
95					}
96				}
97				@media screen and (max-height: 640px) {
98					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload),
99					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload) * {
100						background-image: none !important;
101					}
102				}
103			</style>
104			<link rel="icon" href="https://kardo-app.com/wp-content/uploads/2024/08/cropped-CMYK_White-768x907-2-32x32.png" sizes="32x32" />
105<link rel="icon" href="https://kardo-app.com/wp-content/uploads/2024/08/cropped-CMYK_White-768x907-2-192x192.png" sizes="192x192" />
106<link rel="apple-touch-icon" href="https://kardo-app.com/wp-content/uploads/2024/08/cropped-CMYK_White-768x907-2-180x180.png" />
107<meta name="msapplication-TileImage" content="https://kardo-app.com/wp-content/uploads/2024/08/cropped-CMYK_White-768x907-2-270x270.png" />
108<style id="wp-site-designer-contrast-fallback"> .wp-block-group:not([data-dsgo-inline-bg]),.wp-block-column:not([data-dsgo-inline-bg]),.wp-block-columns:not([data-dsgo-inline-bg]){--dsgo-text-color:initial;} :is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover:not(.has-text-color){color:var(--wp--preset--color--contrast-3) !important;--dsgo-text-color:var(--wp--preset--color--contrast-3);} body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h1:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h2:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h3:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h4:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h5:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h6:not(.has-text-color):where(:not
108(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) p:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) .wp-element-caption:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)){color:var(--dsgo-text-color,inherit) !important;} body .wp-site-blocks :is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column)[data-dsgo-inline-bg] .wp-block-button:is([class*="is-style-outline"],[class*="is-style-secondary"]) .wp-element-button{color:var(--dsgo-text-color,inherit) !important;border-color:currentColor !important;}body .wp-site-blocks :is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column)[data-dsgo-inline-bg] .wp-block-button:is([class*="is-style-outline"],[class*="is-style-secondary"]) .wp-element-button:hover{opacity:0.75;} body .wp-site-blocks [data-dsgo-inline-bg] h1:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h2:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h3:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h4:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h5:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h6:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] p:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] .wp-element-caption:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)){color:var(--dsgo-text-color,inherit) !important;} .wp-block-designsetgo-section.has-background:not([data-dsgo-inline-bg]):not(.has-text-color){color:var(--wp--preset--color--contrast);--dsgo-text-color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-5);color:var(--wp--preset--color--contrast);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not
108(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-2);color:var(--wp--preset--color--contrast);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-1);color:var(--wp--preset--color--contrast);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not
108(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-3);color:var(--wp--preset--color--accent-2);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not
108(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--accent-2);} :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--contrast);color:var(--wp--preset--color--base);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--base);} .wp-block-designsetgo-section.is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)),.has-background.wp-block-designsetgo-section.is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color.wp-block-designsetgo-section.is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--base);color:var(--wp--preset--color--contrast);} body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not
108(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--contrast);} .wp-block-designsetgo-section.is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)),.has-background.wp-block-designsetgo-section.is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color.wp-block-designsetgo-section.is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--base-2);color:var(--wp--preset--color--contrast-2);} body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--contrast-2);} .wp-block-designsetgo-section.is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)),.has-background.wp-block-designsetgo-section.is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color.wp-block-designsetgo-section.is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--base-3);color:var(--wp--preset--color--contrast);} body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not
108(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--contrast);} .wp-block-designsetgo-section.is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)),.has-background.wp-block-designsetgo-section.is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color.wp-block-designsetgo-section.is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--contrast);color:var(--wp--preset--color--base);} body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks .wp-block-designsetgo-section.is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--base);}   body .wp-site-blocks input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="image"]):not([type="hidden"]),body .wp-site-blocks textarea,body .wp-site-blocks select{background-color:var(--wp--preset--color--base);color:var(--wp--preset--color--contrast);border:1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 30%, transparent);} .wp-site-blocks input[type="submit"]:not(.wp-element-button),.wp-site-blocks button[type="submit"]:not(.wp-element-button){background-color:var(--wp--preset--color--accent-2);color:var(--wp--preset--color--base);border-width:0;padding:12px 30px;font-family:inherit;font-size:var(--wp--preset--font-size--medium, 1rem);line-height:inherit;cursor:pointer;}</style>
109		<style id="site-designer-logo-constraints">
110			.wp-block-site-logo.is-default-size img {
111				width: auto;
112				height: auto;
113				max-width: 180px;
114				max-height: 80px;
115			}
116			.wp-block-site-logo img {
117				height: auto;
118			}
119		</style>
120		  <style>
121    * { box-sizing: border-box; }
122    body { margin: 0; padding: 0; background: #08080A; color: #fff; font-family: 'Instrument Sans', sans-serif; line-height: 1.6; }
123    
124    header.kardo-nav { display: flex; align-items: center; justify-content: space-between; padding: 20px 48px; border-bottom: 1px solid rgba(255,255,255,.08); background: rgba(8,8,10,.95); backdrop-filter: blur(10px); position: sticky; top: 0; z-index: 100; }
125    .logo { height: 48px; width: auto; }
126    .back-link { font-family: 'Space Mono', monospace; font-size: 13px; font-weight: 700; color: #FF9A3D; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
127    .back-link:hover { color: #FF6B1A; }
128    
129    .hero { max-width: 1200px; margin: 60px auto 40px; padding: 0 24px; text-align: center; position: relative; }
130    .eyebrow { font-family: 'Space Mono', monospace; font-size: 12px; letter-spacing: .16em; color: #FF6B1A; margin-bottom: 12px; }
131    .title { font-family: 'Archivo', sans-serif; font-size: 42px; font-weight: 900; margin: 0 0 16px; letter-spacing: -.02em; }
132    .subtitle { font-size: 17px; color: #a2a2ab; max-width: 680px; margin: 0 auto 36px; }
133
134    /* Filters */
135    .filter-bar { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; margin-bottom: 40px; }
136    .filter-btn { padding: 10px 20px; border-radius: 999px; font-size: 13px; font-weight: 700; font-family: 'Space Mono', monospace; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); color: #b6b6bd; cursor: pointer; transition: all .2s; }
137    .filter-btn:hover, .filter-btn.active { background: rgba(255,107,26,.15); border-color: #FF6B1A;
137 color: #FF9A3D; }
138
139    /* Gallery Grid */
140    .gallery-grid { max-width: 1200px; margin: 0 auto; padding: 0 24px 80px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
141    @media (max-width: 900px) { .gallery-grid { grid-template-columns: repeat(2, 1fr); } header.kardo-nav { padding: 16px 20px; } }
142    @media (max-width: 768px) { .gallery-grid { grid-template-columns: 1fr; } .title { font-size: 32px; } }
143
144    .card { background: linear-gradient(180deg,#131316,#0d0d10); border: 1px solid rgba(255,255,255,.08); border-radius: 18px; overflow: hidden; position: relative; cursor: pointer; transition: transform .3s, border-color .3s; }
145    .card:hover { transform: translateY(-4px); border-color: rgba(255,107,26,.4); }
146    
147    .card-img-wrap { position: relative; width: 100%; height: 240px; overflow: hidden; background: #1a1a1f; }
148    .card-img-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
149    .card:hover .card-img-wrap img { transform: scale(1.05); }
150
151    .badge-cat { position: absolute; top: 12px; left: 12px; background: rgba(8,8,10,.85); border: 1px solid rgba(255,255,255,.15); backdrop-filter: blur(4px); font-family: 'Space Mono', monospace; font-size: 10px; font-weight: 700; color: #FF9A3D; padding: 4px 10px; border-radius: 999px; }
152    .video-play-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.35); display: flex; align-items: center; justify-content: center; }
153    .play-icon { width: 50px; height: 50px; border-radius: 50%; background: #FF6B1A; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 20px; box-shadow: 0 10px 25px rgba(255,107,26,.6); }
154
155    .card-body { padding: 18px; }
156    .card-title { font-family: 'Archivo', sans-serif; font-size: 16px; font-weight: 800; margin: 0 0 6px; color: #fff; }
157    .card-meta { display: flex; justify-content: space-between; font-size: 12px; color: #8a8a92; font-family: 'Space Mono', monospace; }
158
159    /* Lightbox Modal */
160    .lightbox { position: fixed; inset: 0; background: rgba(4,4,5,.92); z-index: 9999; display: none; align-items: center; justify-content: center; padding: 24px; }
161    .lightbox.open { display: flex; }
162    .lightbox-content { max-width: 800px; width: 100%; background: #121215; border: 1px solid rgba(255,255,255,.12); border-radius: 20px; overflow: hidden; position: relative; padding: 24px; text-align: center; }
163    .lightbox-close { position: absolute; top: 16px; right: 16px; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.1); border: none; color: #fff; font-size: 18px; cursor: pointer; }
164    .lightbox-media { max-height: 480px; width: 100%; object-fit: contain; border-radius: 12px; margin-bottom: 16px; }
165
166    .upload-cta { max-width: 1200px; margin: 40px auto 80px; padding: 40px; background: linear-gradient(180deg, rgba(255,107,26,.12), rgba(13,13,16,1)); border: 1px solid rgba(255,107,26,.3); border-radius: 24px; text-align: center; }
167    .upload-cta h3 { font-family: 'Archivo', sans-serif; font-size: 24px; font-weight: 800; margin: 0 0 10px; }
168    .upload-cta p { font-size: 15px; color: #a2a2ab; margin: 0 0 20px; }
169    .btn-upload { display: inline-block; padding: 12px 28px; background: #FF6B1A; color: #fff; font-weight: 700; font-family: 'Space Mono', monospace; font-size: 13px; text-decoration: none; border-radius: 999px; box-shadow: 0 10px 30px rgba(255,107,26,.4); }
170  
171    .lightbox-nav {
172      position: absolute;
173      top: 50%;
174      transform: translateY(-50%);
175      width: 52px;
176      height: 52px;
177      border-radius: 50%;
178      background: rgba(255,255,255,.14);
179      border: 1px solid rgba(255,255,255,.2);
180      color: #ffffff;
181      font-size: 24px;
182      display: flex;
183      align-items: center;
184      justify-content: center;
185      cursor: pointer;
186      z-index: 1000002;
187      transition: all .2s ease;
188    }
189    .lightbox-nav:hover {
190      background: rgba(255,107,26,.85);
191      border-color: #FF6B1A;
192      transform: translateY(-50%) scale(1.1);
193    }
194    .lightbox-prev { left: 24px; }
195    .lightbox-next { right: 24px; }
196    @media (max-width: 768px) {
197      .lightbox-prev { left: 10px; width: 42px; height: 42px; font-size: 18px; }
198      .lightbox-next { right: 10px; width: 42px; height: 42px; font-size: 18px; }
199    }
200
201  
202/* GLOBAL MOBILE BREAKPOINT & VIEWPORT STANDARDS (375px base, 360px min, <768px mobile) */
203*, *:before, *:after {
204  box-sizing: border-box !important;
205}
206html, body {
207  max-width: 100vw !important;
208  overflow-x: hidden !important;
209}
210
211@media (max-width: 768px) {
212  /* Enforce mobile container boundaries down to 360px */
213  .container, .kardo-container, .wrapper, .section, #kardoTpModal, #kardoPsModal, .kardo-modal-box {
214    width: 100% !important;
215    max-width: 100% !important;
216    box-sizing: border-box !important;
217  }
218  
219  /* Ensure all flex & grid layouts adapt cleanly under 768px */
220  .grid-2col, .grid-3col, .grid-4col, .kardoGrid2Col, .kardo-two-ways-grid, .kardo-topics-grid {
221    grid-template-columns: 1fr !important;
222  }
223  
224  /* Ensure inputs and option pills wrap cleanly on 360px-375px viewports */
225  input, select, textarea, .kardoOptionBtn {
226    max-width: 100% !important;
227    box-sizing: border-box !important;
228  }
229}
230
231
232/* COOKIE BANNER & PREFERENCES SYSTEM STYLING */
233.kardo-switch {
234  position: relative;
235  display: inline-block;
236  width: 48px;
237  height: 26px;
238  flex-shrink: 0;
239}
240.kardo-switch input {
241  opacity: 0;
242  width: 0;
243  height: 0;
244}
245.kardo-slider {
246  position: absolute;
247  cursor: pointer;
248  inset: 0;
249  background-color: rgba(255, 255, 255, 0.2);
250  transition: .3s;
251  border-radius: 999px;
252  border: 1px solid rgba(255, 255, 255, 0.15);
253}
254.kardo-slider:before {
255  position: absolute;
256  content: "";
257  height: 20px;
258  width: 20px;
259  left: 2px;
260  bottom: 2px;
261  background-color: white;
262  transition: .3s;
263  border-radius: 50%;
264}
265input:checked + .kardo-slider {
266  background-color: #FF6B1A;
267  border-color: #FF6B1A;
268}
269input:checked + .kardo-slider:before {
270  transform: translateX(22px);
271}
272
273
274/* ============================================================
275   SMARTPHONE ULTRA-OPTIMIZATION ENGINE (360px - 768px Viewports)
276   ============================================================ */
277
278/* Global Box Sizing & Overflows */
279*, *:before, *:after {
280  box-sizing: border-box !important;
281}
282
283html, body {
284  max-width: 100vw !important;
285  overflow-x: hidden !important;
286  -webkit-text-size-adjust: 100% !important;
287  touch-action: manipulation;
288}
289
290/* Touch targets & Button active state feedback */
291button, a.kardo-btn, .kardoOptionBtn, .kardo-style-btn, .kardo-skill-btn, .kardo-focus-btn, .kardo-time-btn {
292  touch-action: manipulation;
293  -webkit-tap-highlight-color: transparent;
294}
295
296button:active, a.kardo-btn:active, .kardoOptionBtn:active {
297  transform: scale(0.97) !important;
298}
299
300/* Mobile Breakpoint Optimizations (< 768px) */
301@media (max-width: 768px) {
302  /* Section Padding & Spacing */
303  .rSec, section, header, footer {
304    padding-left: 16px !important;
305    padding-right: 16px !important;
306    padding-top: 40px !important;
307    padding-bottom: 40px !important;
308  }
309
310  /* Fluid Typography for Mobile */
311  h1, .rH1 {
312    font-size: clamp(28px, 8vw, 44px) !important;
313    line-height: 1.15 !important;
314    letter-spacing: -0.02em !important;
315  }
316
317  h2, .rH2 {
318    font-size: clamp(22px, 6vw, 32px) !important;
319    line-height: 1.25 !important;
320    letter-spacing: -0.01em !important;
321  }
322
323  h3 {
324    font-size: clamp(18px, 5vw, 24px) !important;
325    line-height: 1.3 !important;
326  }
327
328  p, li {
329    font-size: 14.5px !important;
330    line-height: 1.6 !important;
331  }
332
333  /* Structural Grid Collapse for Smartphones */
334  .rHero, .rGrid2, .rFeat, .rTwo, .rThree, .kardoGrid2Col, .kardo-topics-grid, .kardo-two-ways-grid, .kardo-support-grid {
335    grid-template-columns: 1fr !important;
336    gap: 20px !important;
337  }
338
339  /* Card Padding Adjustments for Mobile */
340  .rFeat, .rCta, div[style*="border-radius: 22px"], div[style*="border-radius: 24px"], div[style*="border-radius: 18px"] {
341    padding: 20px 16px !important;
342    border-radius: 18px !important;
343  }
344
345  /* Header & Logo Optimization */
346  .rLogo, header img {
347    height: 42px !important;
348    width: auto !important;
349  }
350
351  /* Feature Screenshots & Images */
352  img[data-shot], .rFeat img, .shot-card img {
353    width: 100% !important;
354    height: auto !important;
355    max-height: 420px !important;
356    object-fit: contain !important;
357    border-radius: 12px !important;
358  }
359
360  /* Interactive Canvas (Court Heatmap) Scaling */
361  #kardoCourtCanvas {
362    width: 100% !important;
363    height: auto !important;
364    max-height: 240px !important;
365    display: block !important;
366  }
367
368  /* Form Range Sliders Optimization */
369  input[type=range] {
370    height: 32px !important;
371    cursor: pointer;
372  }
373
374  /* Option Buttons Wrapping on 360px screens */
375  .kardoOptions {
376    display: grid !important;
377    grid-template-columns: repeat(2, 1fr) !important;
378    gap: 8px !important;
379  }
380
381  .kardoOptionBtn {
382    width: 100% !important;
383    min-width: 0 !important;
384    padding: 10px 8px !important;
385    font-size: 13px !important;
386    text-align: center !important;
387  }
388
389  /* Modals Smartphone Adjustments */
390  #kardoTpModal, #kardoPsModal, .kardo-modal-box, #kardoQuizModal > div {
391    width: 96% !important;
392    max-width: 100% !important;
393    padding: 20px 14px !important;
394    margin: 0 auto !important;
395    border-radius: 18px !important;
396    max-height: 92vh !important;
397  }
398
399  /* Cookie Banner Mobile Alignment */
400  #kardoCookieBanner {
401    width: 95% !important;
402    bottom: 12px !important;
403    padding: 18px 14px !important;
404    border-radius: 16px !important;
405  }
406
407  #kardoCookieBanner > div[style*="display: flex"] {
408    flex-direction: column !important;
409    gap: 8px !important;
410  }
411
412  #kardoCookieBanner button {
413    width: 100% !important;
414  }
415
416  /* Mobile Sticky App Bar */
417  #kardoMobileBottomBar {
418    display: flex !important;
419  }
420}
421
422/* Hide Mobile Bottom Bar on Desktop */
423#kardoMobileBottomBar {
424  display: none;
425}
426
427</style>
428  <!-- Open Graph / WhatsApp / Facebook Meta Tags -->
429  <meta property="og:type" content="website">
430  <meta property="og:url" content="https://kardo-app.com">
431  <meta property="og:site_name" content="KARDO App">
432  <meta property="og:title" content="KARDO App — Play Smart. Play Sorted.">
433  <meta property="og:description" content="The world's 1st all-in-one badminton app for grassroots and semi-pro players, coaches, academies, and tournament hosts.">
434  <meta property="og:image" content="https://kardo-app.com/wp-content/themes/kardo-theme/assets/og-kardo-square.png">
435  <meta property="og:image:secure_url" content="https://kardo-app.com/wp-content/themes/kardo-theme/assets/og-kardo-square.png">
436  <meta property="og:image:type" content="image/png">
437  <meta property="og:image:width" content="600">
438  <meta property="og:image:height" content="600">
439  <meta property="og:image:alt" content="KARDO App — Play Smart. Play Sorted.">
440
441  <!-- Twitter Card Meta Tags -->
442  <meta name="twitter:card" content="summary_large_image">
443  <meta name="twitter:url" content="https://kardo-app.com">
444  <meta name="twitter:title" content="KARDO App — Play Smart. Play Sorted.">
445  <meta name="twitter:description" content="The world's 1st all-in-one badminton app for grassroots and semi-pro players, coaches, academies, and tournament hosts.">
446  <meta name="twitter:image" content="https://kardo-app.com/wp-content/themes/kardo-theme/assets/og-kardo-share.png">
447
448    <!-- Favicon & Apple Touch Icons (Vibrant Orange Badge for Light/Dark Tab Contrast) -->
449  <link rel="shortcut icon" href="https://kardo-app.com/wp-content/themes/kardo-theme/assets/favicon.ico" type="image/x-icon">
450  <link rel="icon" type="image/x-icon" href="https://kardo-app.com/wp-content/themes/kardo-theme/assets/favicon.ico">
451  <link rel="icon" type="image/png" sizes="32x32" href="https://kardo-app.com/wp-content/themes/kardo-theme/assets/favicon-32x32.png">
452  <link rel="icon" type="image/png" sizes="16x16" href="https://kardo-app.com/wp-content/themes/kardo-theme/assets/favicon-16x16.png">
453  <link rel="icon" type="image/png" sizes="64x64" href="https://kardo-app.com/wp-content/themes/kardo-theme/assets/favicon.png">
454  <link rel="apple-touch-icon" sizes="180x180" href="https://kardo-app.com/wp-content/themes/kardo-theme/assets/apple-touch-icon.png">
455</head>
456<body>
457  <header class="kardo-nav">
458    <a href="https://kardo-app.com/"><img src="https://kardo-app.com/wp-content/themes/kardo-theme/assets/kardo-full.png" alt="KARDO App" class="logo"></a>
459    <a href="https://kardo-app.com/#media" class="back-link">← Return to Website</a>
460  </header>
461
462  <div class="hero">
463    <div class="eyebrow">COMMUNITY &amp; TOURNAMENT GALLERY</div>
464    <h1 class="title">Relive the Action, Passion &amp; Celebrations</h1>
465    <p class="subtitle">Curated photos and videos from KARDO tournaments, academies, epic court rallies, and celebration dances.</p>
466
467    <div class="filter-bar">
468      <button class="filter-btn active" onclick="filterGallery('all')">🏆 All Moments</button>
469      <button class="filter-btn" onclick="filterGallery('tournament')">🏸 Tournaments</button>
470      <button class="filter-btn" onclick="filterGallery('videos')">🎥 Epic Rallies &amp; Reels</button>
471      <button class="filter-btn" onclick="filterGallery('celebrations')">💃 Celebration Dances</button>
472      <button class="filter-btn" onclick="filterGallery('podium')">🥇 Winners &amp; Podiums</button>
473    </div>
474  </div>
475
476  <div class="gallery-grid" id="galleryContainer">
477    <div class="card" data-cat="tournament" onclick="openLightbox('https://kardo-app.com/wp-content/themes/kardo-theme/assets/contest-smash.webp', 'Smash Shot Challenge 2026', 'Finals match point smash from C
477ourt 1')">
478      <div class="card-img-wrap">
479        <span class="badge-cat">TOURNAMENT</span>
480        <img src="https://kardo-app.com/wp-content/themes/kardo-theme/assets/contest-smash.webp" alt="Smash Shot Challenge">
481      </div>
482      <div class="card-body">
483        <div class="card-title">Smash Shot Challenge 2026</div>
484        <div class="card-meta"><span>Karnataka Open</span><span>❤️ 512</span></div>
485      </div>
486    </div>
487
488    <div class="card" data-cat="videos" onclick="openLightbox('https://kardo-app.com/wp-content/themes/kardo-theme/assets/contest-smash.webp', '38-Shot Championship Rally (Video)', 'Unbelievable defensive recovery & jump smash recap')">
489      <div class="card-img-wrap">
490        <span class="badge-cat">VIDEO REEL</span>
491        <img src="https://kardo-app.com/wp-content/themes/kardo-theme/assets/contest-smash.webp" alt="Rally Video">
492        <div class="video-play-overlay"><div class="play-icon">▶</div></div>
493      </div>
494      <div class="card-body">
495        <div class="card-title">38-Shot Championship Rally</div>
496        <div class="card-meta"><span>duration 0:48</span><span>👁️ 1.8k views</span></div>
497      </div>
498    </div>
499
500    <div class="card" data-cat="celebrations" onclick="openLightbox('https://kardo-app.com/wp-content/themes/kardo-theme/assets/contest-photo.jpeg', 'Victorious Match Celebration', 'Post-match victory dance after winning the doubles final')">
501      <div class="card-img-wrap">
502        <span class="badge-cat">CELEBRATIONS</span>
503        <img src="https://kardo-app.com/wp-content/themes/kardo-theme/assets/contest-photo.jpeg" alt="Celebration Dance">
504      </div>
505      <div class="card-body">
506        <div class="card-title">Victorious Match Celebration</div>
507        <div class="card-meta"><span>User Submission</span><span>❤️ 389</span></div>
508      </div>
509    </div>
510
511    <div class="card" data-cat="podium" onclick="openLightbox('https://kardo-app.com/wp-content/themes/kardo-theme/assets/contest-giveaway.jpeg', 'KARDO Open Trophy Ceremony', 'Singles & Doubles champions receiving official trophies')">
512      <div class="card-img-wrap">
513        <span class="badge-cat">PODIUM</span>
514        <img src="https://kardo-app.com/wp-content/themes/kardo-theme/assets/contest-giveaway.jpeg" alt="Trophy Ceremony">
515      </div>
516      <div class="card-body">
517        <div class="card-title">KARDO Open Trophy Ceremony</div>
518        <div class="card-meta"><span>Bengaluru</span><span>❤️ 640</span></div>
519      </div>
520    </div>
521  </div>
522
523  <div class="upload-cta">
524    <h3>Got Legendary Court Moments or Celebration Reels?</h3>
525    <p>Submit your photos and video highlights to get featured in the KARDO Community Gallery &amp; win official merchandise!</p>
526    <a href="mailto:[email protected]?subject=Gallery Submission" class="btn-upload">✉ Submit Photo / Reel</a>
527  </div>
528
529  <div class="lightbox" id="lightboxModal" onclick="closeLightbox(event)">
530    <div class="lightbox-content" onclick="event.stopPropagation()">
531      <button class="lightbox-close" onclick="closeLightbox()">✕</button>
532      <img id="lightboxImg" class="lightbox-media" src="" alt="Gallery Detail">
533      <h3 id="lightboxTitle" style="font-family:'Archivo';font-size:22px;color:#fff;margin:0 0 8px;"></h3>
534      <p id="lightboxDesc" style="font-size:14px;color:#a2a2ab;margin:0;"></p>
535    </div>
536  </div>
537
538  
538<script>
539    function filterGallery(cat) {
540      document.querySelectorAll('.filter-btn').forEach(btn => btn.classList.remove('active'));
541      event.target.classList.add('active');
542      const cards = document.querySelectorAll('.card');
543      cards.forEach(card => {
544        if (cat === 'all' || card.dataset.cat === cat) {
545          card.style.display = 'block';
546        } else {
547          card.style.display = 'none';
548        }
549      });
550    }
551
552        let galleryCards = [];
553    let currentGalleryIdx = 0;
554
555    function openLightbox(src, title, desc) {
556      galleryCards = Array.from(document.querySelectorAll('.card')).filter(card => card.style.display !== 'none');
557      
558      currentGalleryIdx = galleryCards.findIndex(card => {
559        const img = card.querySelector('img');
560        return img && (img.getAttribute('src') === src || img.src.includes(src));
561      });
562      if (currentGalleryIdx === -1) currentGalleryIdx = 0;
563
564      updateGalleryModalState(src, title, desc);
565      document.getElementById('lightboxModal').classList.add('open');
566    }
567
568    function updateGalleryModalState(fallbackSrc, fallbackTitle, fallbackDesc) {
569      if (galleryCards.length > 0 && currentGalleryIdx < galleryCards.length) {
570        const activeCard = galleryCards[currentGalleryIdx];
571        const img = activeCard.querySelector('img');
572        const h3 = activeCard.querySelector('h3, .card-title');
573        const p = activeCard.querySelector('p, .card-desc');
574
575        document.getElementById('lightboxImg').src = img ? img.src : fallbackSrc;
576        document.getElementById('lightboxTitle').textContent = h3 ? h3.textContent : (fallbackTitle || '');
577        document.getElementById('lightboxDesc').textContent = p ? p.textContent : (fallbackDesc || '');
578
579        const counter = document.getElementById('lightboxCounter');
580        if (counter) {
581          counter.textContent = `Moment ${currentGalleryIdx + 1} of ${galleryCards.length}`;
582        }
583      } else {
584        document.getElementById('lightboxImg').src = fallbackSrc || '';
585        document.getElementById('lightboxTitle').textContent = fallbackTitle || '';
586        document.getElementById('lightboxDesc').textContent = fallbackDesc || '';
587      }
588    }
589
590    function navGallery(dir, e) {
591      if (e) e.stopPropagation();
592      if (galleryCards.length === 0) return;
593      currentGalleryIdx = (currentGalleryIdx + dir + galleryCards.length) % galleryCards.length;
594      updateGalleryModalState();
595    }
596
597    function closeLightbox() {
598      document.getElementById('lightboxModal').classList.remove('open');
599    }
600
601    window.addEventListener('keydown', function(e) {
602      const modal = document.getElementById('lightboxModal');
603      if (modal && modal.classList.contains('open')) {
604        if (e.key === 'ArrowRight') navGallery(1);
605        if (e.key === 'ArrowLeft') navGallery(-1);
606      }
607    });
608  </script>
608
609  
609<script type="speculationrules">
610{"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/kardo-theme/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
611</script>
611
612			
612<script>
613				const registerAllyAction = () => {
614					if ( ! window?.ElementorProFrontendConfig || ! window?.elementorFrontend?.utils?.urlActions ) {
615						return;
616					}
617
618					elementorFrontend.utils.urlActions.addAction( 'allyWidget:open', () => {
619						if (window?.ea11yWidget?.widget?.open) {
620							return window.ea11yWidget.widget.isOpen()
621								? window.ea11yWidget.widget.close()
622								: window.ea11yWidget.widget.open();
623						}
624					} );
625				};
626
627				const waitingLimit = 30;
628				let retryCounter = 0;
629
630				const waitForElementorPro = () => {
631					return new Promise( ( resolve ) => {
632						const intervalId = setInterval( () => {
633							if ( retryCounter === waitingLimit ) {
634								resolve( null );
635							}
636
637							retryCounter++;
638
639							if ( window.elementorFrontend && window?.elementorFrontend?.utils?.urlActions ) {
640								clearInterval( intervalId );
641								resolve( window.elementorFrontend );
642							}
643								}, 100 ); // Check every 100 milliseconds for availability of elementorFrontend
644					});
645				};
646
647				waitForElementorPro().then( () => { registerAllyAction(); });
648			</script>
648
649						
649<script>
650				( () => {
651					const lazyloadRunObserver = () => {
652						const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` );
653						const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => {
654							entries.forEach( ( entry ) => {
655								if ( entry.isIntersecting ) {
656									let lazyloadBackground = entry.target;
657									if( lazyloadBackground ) {
658										lazyloadBackground.classList.add( 'e-lazyloaded' );
659									}
660									lazyloadBackgroundObserver.unobserve( entry.target );
661								}
662							});
663						}, { rootMargin: '200px 0px 200px 0px' } );
664						lazyloadBackgrounds.forEach( ( lazyloadBackground ) => {
665							lazyloadBackgroundObserver.observe( lazyloadBackground );
666						} );
667					};
668					const events = [
669						'DOMContentLoaded',
670						'elementor/lazyload/observe',
671					];
672					events.forEach( ( event ) => {
673						document.addEventListener( event, lazyloadRunObserver );
674					} );
675				} )();
676			</script>
676
677			
677<script id="angie-canvas-template-js-before">
678angieCanvasTemplateData = {"templateSlug":"angie-canvas"};
679//# sourceURL=angie-canvas-template-js-before
680</script>
vendor: 1 bytes, line 680
680
681<script id="elementor-webpack-runtime-js" src="https://kardo-app.com/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js?ver=4.3.1"></script>
vendor: 1 bytes, line 681
681
682<script id="elementor-frontend-modules-js" src="https://kardo-app.com/wp-content/plugins/elementor/assets/js/frontend-modules.min.js?ver=4.3.1"></script>
vendor: 1 bytes, line 682
682
683<script id="jquery-ui-core-js-before">
684jQuery.uiBackCompat = true;
685//# sourceURL=jquery-ui-core-js-before
686</script>
vendor: 1 bytes, line 686
686
687<script id="jquery-ui-core-js" src="https://kardo-app.com/wp-includes/js/jquery/ui/core.min.js?ver=1.14.2"></script>
vendor: 1 bytes, line 687
687
688<script id="elementor-frontend-js" src="https://kardo-app.com/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=4.3.1"></script>
vendor: 1 bytes, line 688
688
689<script id="smartmenus-js" src="https://kardo-app.com/wp-content/plugins/elementor-pro/assets/lib/smartmenus/jquery.smartmenus.min.js?ver=1.2.1"></script>
vendor: 1 bytes, line 689
689
690<script id="wp-emoji-settings" type="application/json">
691{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://kardo-app.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}}
692</script>
vendor: 1 bytes, line 692
692
693<script type="module">
694/*! This file is auto-generated */
695var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
696//# sourceURL=https://kardo-app.com/wp-includes/js/wp-emoji-loader.min.js
697</script>
697
698		
698<script>'undefined'=== typeof _trfq || (window._trfq = []);'undefined'=== typeof _trfd && (window._trfd=[]),
699                _trfd.push({'tccl.baseHost':'secureserver.net'}),
700                _trfd.push({'ap':'wpaas_v2'},
701                    {'server':'a8d0140c8338'},
702                    {'pod':'c21-prod-p3-us-west-2'},
703                                        {'xid':'45530230'},
704                    {'wp':'7.1.2'},
705                    {'php':'8.2.33'},
706                    {'loggedin':'0'},
707                    {'cdn':'1'},
708                    {'builder':''},
709                    {'theme':'kardo-theme'},
710                    {'wds':'0'},
711                    {'wp_alloptions_count':'249'},
712                    {'wp_alloptions_bytes':'77568'},
713                    {'gdl_coming_soon_page':'0'}
714                    , {'appid':'432547'}                 );
715            var trafficScript = document.createElement('script'); trafficScript.src = 'https://img1.wsimg.com/signals/js/clients/scc-c2/scc-c2.min.js'; window.document.head.appendChild(trafficScript);</script>
715
716		
716<script>window.addEventListener('click', function (elem) { var _elem$target, _elem$target$dataset, _window, _window$_trfq; return (elem === null || elem === void 0 ? void 0 : (_elem$target = elem.target) === null || _elem$target === void 0 ? void 0 : (_elem$target$dataset = _elem$target.dataset) === null || _elem$target$dataset === void 0 ? void 0 : _elem$target$dataset.eid) && ((_window = window) === null || _window === void 0 ? void 0 : (_window$_trfq = _window._trfq) === null || _window$_trfq === void 0 ? void 0 : _window$_trfq.push(["cmdLogEvent", "click", elem.target.dataset.eid]));});</script>
716
717		
717<script src='https://img1.wsimg.com/traffic-assets/js/tccl-tti.min.js' onload="window.tti.calculateTTI()"></script>
717
718		
719<script>
720// Global Escape key listener to close all pop-ups, modals, lightboxes, and drawers
721window.addEventListener('keydown', function(e) {
722  if (e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27) {
723    const ids = ['kardoTpOverlay', 'kardoPsOverlay', 'kardoAiChatPanel', 'kardoAiChatModal', 'lightboxModal'];
724    ids.forEach(id => {
725      const el = document.getElementById(id);
726      if (el && el.classList.contains('open')) {
727        el.classList.remove('open');
728      }
729    });
730    document.querySelectorAll('.open').forEach(el => {
731      if (el.classList.contains('overlay') || el.classList.contains('modal') || el.classList.contains('lightbox') || el.id.indexOf('Modal') > -1 || el.id.indexOf('Overlay') > -1) {
732        el.classList.remove('open');
733      }
734    });
735  }
736});
737</script>
737
738
739
740  <!-- STATE 1: FIRST VISIT COOKIE BANNER -->
741  <div id="kardoCookieBanner" style="position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); width: 92%; max-width: 860px; z-index: 9999999; background: rgba(19, 19, 22, 0.98); border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 18px; padding: 24px; box-shadow: 0 20px 60px rgba(0,0,0,0.9); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); font-family: 'Instrument Sans', sans-serif; color: #fff; display: none; box-sizing: border-box;">
742    <h3 style="font-family: 'Archivo', sans-serif; font-size: 18px; font-weight: 800; color: #ffffff; margin: 0 0 10px;">Cookies on kardo-app.com</h3>
743    <p style="font-size: 14px; line-height: 1.6; color: #a2a2ab; margin: 0 0 20px;">We use necessary cookies to make the site work. We’d also like to set analytics and marketing cookies, and load maps and video — but only if you agree. You can change your choice any time.</p>
744    
745    <div style="display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-bottom: 16px;">
746      <button onclick="acceptAllCookies()" style="flex: 1; min-width: 130px; padding: 12px 20px; background: linear-gradient(135deg, #FF6B1A, #FF9A3D); color: #ffffff; border: none; border-radius: 12px; font-family: 'Instrument Sans', sans-serif; font-size: 14px; font-weight: 700; cursor: pointer; transition: transform 0.15s;">Accept all</button>
747      
748      <button onclick="rejectAllCookies()" style="flex: 1; min-width: 130px; padding: 12px 20px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.2); color: #ffffff; border-radius: 12px; font-family: 'Instrument Sans', sans-serif; font-size: 14px; font-weight: 600; cursor: pointer; transition: background 0.15s;">Reject all</button>
749      
750      <button onclick="openCookiePreferencesModal()" style="flex: 1; min-width: 160px; padding: 12px 20px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.2); color: #ffffff; border-radius: 12px; font-family: 'Instrument Sans', sans-serif; font-size: 14px; font-weight: 600; cursor: pointer; transition: background 0.15s;">Manage preferences</button>
751    </div>
752    
753    <div>
754      <a href="privacy-policy.html" style="color: #FF9A3D; font-size: 13px; font-weight: 600; text-decoration: underline;">Website Privacy Policy</a>
755    </div>
756  </div>
757
758  <!-- STATE 2: MANAGE COOKIE PREFERENCES MODAL -->
759  <div id="kardoCookiePreferencesModal" onclick="closeCookiePreferencesModal(event)" style="position: fixed; inset: 0; z-index: 10000000; background: rgba(4,4,5,0.88); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); display: none; align-items: center; justify-content: center; padding: 16px; box-sizing: border-box;">
760    <div onclick="event.stopPropagation()" style="background: #131316; border: 1px solid rgba(255,255,255,0.15); border-radius: 22px; max-width: 640px; width: 100%; max-height: 90vh; overflow-y: auto; padding: 28px; box-shadow: 0 24px 70px rgba(0,0,0,0.9); font-family: 'Instrument Sans', sans-serif; color: #fff; position: relative; box-sizing: border-box;">
761      
762      <button onclick="closeCookiePreferencesModal()" aria-label="Close" style="position: absolute; top: 20px; right: 20px; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); color: #fff; font-size: 16px; cursor: pointer; display: flex; align-items: center; justify-content: center; font-weight: 700;">✕</button>
763
764      <h3 style="font-family: 'Archivo', sans-serif; font-size: 22px; font-weight: 800; color: #ffffff; margin: 0 0 6px;">Manage cookie preferences</h3>
765      <p style="font-size: 13.5px; color: #9a9aa2; margin: 0 0 24px;">Four categories, all optional ones off by default.</p>
766
767      <div style="display: flex; flex-direction: column; gap: 16px; margin-bottom: 28px;">
768        
769        <!-- Category 1: Strictly necessary -->
770        <div style="background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); border-radius: 14px; padding: 16px; display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;">
771          <div>
772            <div style="font-family: 'Archivo', sans-serif; font-size: 15.5px; font-weight: 700; color: #ffffff; margin-bottom: 4px;">Strictly necessary</div>
773            <div style="font-size: 13px; color: #9a9aa2; line-height: 1.5;">Session, security, load balancing, and remembering this choice.</div>
774          </div>
775          <span style="font-family: 'Space Mono', monospace; font-size: 11px; font-weight: 700; color: #72bf44; background: rgba(114,191,68,0.15); border: 1px solid rgba(114,191,68,0.3); padding: 4px 10px; border-radius: 999px; white-space: nowrap;">Always on</span>
776        </div>
777
778        <!-- Category 2: Analytics -->
779        <div style="background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); border-radius: 14px; padding: 16px; display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;">
780          <div>
781            <div style="font-family: 'Archivo', sans-serif; font-size: 15.5px; font-weight: 700; color: #ffffff; margin-bottom: 4px;">Analytics</div>
782            <div style="font-size: 13px; color: #9a9aa2; line-height: 1.5;">Which pages get read, where visitors drop off, crash reports.</div>
783          </div>
784          <label class="kardo-switch">
785            <input type="checkbox" id="cookieAnalyticsToggle">
786            <span class="kardo-slider"></span>
787          </label>
788        </div>
789
790        <!-- Category 3: Marketing -->
791        <div style="background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); border-radius: 14px; padding: 16px; display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;">
792          <div>
793            <div style="font-family: 'Archivo', sans-serif; font-size: 15.5px; font-weight: 700; color: #ffffff; margin-bottom: 4px;">Marketing</div>
794            <div style="font-size: 13px; color: #9a9aa2; line-height: 1.5;">Whether an ad brought you here, and ad frequency capping.</div>
795          </div>
796          <label class="kardo-switch">
797            <input type="checkbox" id="cookieMarketingToggle">
798            <span class="kardo-slider"></span>
799          </label>
800        </div>
801
802        <!-- Category 4: Third-party embeds -->
803        <div style="background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); border-radius: 14px; padding: 16px; display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;">
804          <div>
805            <div style="font-family: 'Archivo', sans-serif; font-size: 15.5px; font-weight: 700; color: #ffffff; margin-bottom: 4px;">Third-party embeds</div>
806            <div style="font-size: 13px; color: #9a9aa2; line-height: 1.5;">Maps, video, chat widget. These providers get your IP when they load.</div>
807          </div>
808          <label class="kardo-switch">
809            <input type="checkbox" id="cookieEmbedsToggle">
810            <span class="kardo-slider"></span>
811          </label>
812        </div>
813
814      </div>
815
816      <!-- Buttons Row -->
817      <div style="display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-bottom: 20px;">
818        <button onclick="saveCookiePreferences()" style="flex: 1; min-width: 140px; padding: 12px 18px; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.2); color: #ffffff; border-radius: 12px; font-family: 'Instrument Sans', sans-serif; font-size: 14px; font-weight: 600; cursor: pointer;">Save preferences</button>
819        
820        <button onclick="acceptAllCookies()" style="flex: 1; min-width: 130px; padding: 12px 18px; background: linear-gradient(135deg, #FF6B1A, #FF9A3D); color: #ffffff; border: none; border-radius: 12px; font-family: 'Instrument Sans', sans-serif; font-size: 14px; font-weight: 700; cursor: pointer;">Accept all</button>
821        
822        <button onclick="rejectAllCookies()" style="flex: 1; min-width: 130px; padding: 12px 18px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.2); color: #ffffff; border-radius: 12px; font-family: 'Instrument Sans', sans-serif; font-size: 14px; font-weight: 600; cursor: pointer;">Reject all</button>
823      </div>
824
825      <div>
826        <a href="privacy-policy.html#cookies" style="color: #FF9A3D; font-size: 13px; font-weight: 600; text-decoration: underline;">See the full cookie list</a>
827      </div>
828
829    </div>
830  </div>
831
832  
832<script>
833    window.initKardoCookieManager = function() {
834      const savedConsent = localStorage.getItem('kardoCookieConsent');
835      const banner = document.getElementById('kardoCookieBanner');
836      
837      if (!savedConsent && banner) {
838        banner.style.display = 'block';
839      } else if (savedConsent) {
840        try {
841          const consent = JSON.parse(savedConsent);
842          const a = document.getElementById('cookieAnalyticsToggle');
843          const m = document.getElementById('cookieMarketingToggle');
844          const e = document.getElementById('cookieEmbedsToggle');
845          if (a) a.checked = !!consent.analytics;
846          if (m) m.checked = !!consent.marketing;
847          if (e) e.checked = !!consent.embeds;
848        } catch(err) {}
849      }
850    };
851
852    window.acceptAllCookies = function() {
853      const consent = { necessary: true, analytics: true, marketing: true, embeds: true, date: new Date().toISOString() };
854      localStorage.setItem('kardoCookieConsent', JSON.stringify(consent));
855      closeCookieBanners();
856    };
857
858    window.rejectAllCookies = function() {
859      const consent = { necessary: true, analytics: false, marketing: false, embeds: false, date: new Date().toISOString() };
860      localStorage.setItem('kardoCookieConsent', JSON.stringify(consent));
861      closeCookieBanners();
862    };
863
864    window.saveCookiePreferences = function() {
865      const a = document.getElementById('cookieAnalyticsToggle')?.checked || false;
866      const m = document.getElementById('cookieMarketingToggle')?.checked || false;
867      const e = document.getElementById('cookieEmbedsToggle')?.checked || false;
868      const consent = { necessary: true, analytics: a, marketing: m, embeds: e, date: new Date().toISOString() };
869      localStorage.setItem('kardoCookieConsent', JSON.stringify(consent));
870      closeCookieBanners();
871    };
872
873    window.openCookiePreferencesModal = function() {
874      const modal = document.getElementById('kardoCookiePreferencesModal');
875      if (modal) modal.style.display = 'flex';
876    };
877
878    window.closeCookiePreferencesModal = function(e) {
879      if (e && e.target && e.target.id !== 'kardoCookiePreferencesModal' && !e.target.classList.contains('kardo-modal-close')) {
880        return;
881      }
882      const modal = document.getElementById('kardoCookiePreferencesModal');
883      if (modal) modal.style.display = 'none';
884    };
885
886    function closeCookieBanners() {
887      const banner = document.getElementById('kardoCookieBanner');
888      const modal = document.getElementById('kardoCookiePreferencesModal');
889      if (banner) banner.style.display = 'none';
890      if (modal) modal.style.display = 'none';
891    }
892
893    if (document.readyState === 'loading') {
894      document.addEventListener('DOMContentLoaded', window.initKardoCookieManager);
895    } else {
896      window.initKardoCookieManager();
897    }
898  </script>
898
899
900
901  <!-- LIGHTBOX OVERLAY WITH PREV/NEXT ARROWS -->
902  <div id="kardoLightbox" style="position: fixed; inset: 0; z-index: 1000000; background: rgba(4,4,5,.94); display: none; align-items: center; justify-content: center; padding: 40px; cursor: zoom-out;">
903    <button id="kardoLightboxPrev" aria-label="Previous Screenshot" style="position: absolute; left: 24px; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; border-radius: 50%; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.2); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 24px; cursor: pointer; z-index: 1000002; transition: all .2s;">❮</button>
904    
905    <img id="kardoLightboxImg" src="" style="max-width: 90%; max-height: 85vh; border-radius: 16px; box-shadow: 0 24px 70px rgba(0,0,0,.85); cursor: default;" onclick="event.stopPropagation()">
906    
907    <button id="kardoLightboxNext" aria-label="Next Screenshot" style="position: absolute; right: 24px; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; border-radius: 50%; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.2); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 24px; cursor: pointer; z-index: 1000002; transition: all .2s;">❯</button>
908    
909    <div id="kardoLightboxCounter" style="position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); font-family: 'Space Mono', monospace; font-size: 12px; font-weight: 700; letter-spacing: .1em; color: #fff; background: rgba(0,0,0,.6); border: 1px solid rgba(255,255,255,.15); padding: 6px 16px; border-radius: 999px; pointer-events: none;">1 / 12</div>
910    
911    <div id="kardoLightboxClose" style="position: absolute; top: 24px; right: 24px; width: 42px; height: 42px; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 600; cursor: pointer; z-index: 1000002;">✕</div>
912  </div>
913
914  
914<script>
915    (function() {
916      function initLightbox() {
917        const lightbox = document.getElementById('kardoLightbox');
918        const lightboxImg = document.getElementById('kardoLightboxImg');
919        const prevBtn = document.getElementById('kardoLightboxPrev');
920        const nextBtn = document.getElementById('kardoLightboxNext');
921        const closeBtn = document.getElementById('kardoLightboxClose');
922        const counterEl = document.getElementById('kardoLightboxCounter');
923
924        if (!lightbox || !lightboxImg) return;
925
926        let shotImages = [];
927        let currentShotIdx = 0;
928
929        function refreshShotList() {
930          const imgs = Array.from(document.querySelectorAll('img[data-shot], .shot-card img, .gallery-item img, img.kardoShot, .rFeat img'));
931          shotImages = imgs.filter(img => img.src && !img.src.includes('data:image') && !img.classList.contains('rLogo'));
932          shotImages.forEach(img => {
933            img.style.cursor = 'pointer';
934          });
935        }
936
937        refreshShotList();
938
939        function updateLightboxState() {
940          if (shotImages.length === 0) return;
941          const imgEl = shotImages[currentShotIdx];
942          lightboxImg.src = imgEl.currentSrc || imgEl.src;
943          if (counterEl) {
944            counterEl.textContent = 'Screenshot ' + (currentShotIdx + 1) + ' of ' + shotImages.length;
945          }
946        }
947
948        function showNextShot() {
949          if (shotImages.length === 0) return;
950          currentShotIdx = (currentShotIdx + 1) % shotImages.length;
951          updateLightboxState();
952        }
953
954        function showPrevShot() {
955          if (shotImages.length === 0) return;
956          currentShotIdx = (currentShotIdx - 1 + shotImages.length) % shotImages.length;
957          updateLightboxState();
958        }
959
960        function closeLightbox() {
961          lightbox.style.display = 'none';
962          lightboxImg.src = '';
963        }
964
965        document.addEventListener('click', function(e) {
966          const target = e.target;
967          if (!target || target.tagName !== 'IMG') return;
968
969          refreshShotList();
970          const idx = shotImages.indexOf(target);
971
972          if (idx !== -1 || target.hasAttribute('data-shot') || target.classList.contains('kardoShot') || target.closest('.shot-card, .gallery-item, .rFeat')) {
973            currentShotIdx = idx !== -1 ? idx : 0;
974            lightbox.style.display = 'flex';
975            updateLightboxState();
976          }
977        });
978
979        if (prevBtn) prevBtn.addEventListener('click', function(e) { e.stopPropagation(); showPrevShot(); });
980        if (nextBtn) nextBtn.addEventListener('click', function(e) { e.stopPropagation(); showNextShot(); });
981        if (closeBtn) closeBtn.addEventListener('click', function(e) { e.stopPropagation(); closeLightbox(); });
982        if (lightbox) lightbox.addEventListener('click', function(e) { if (e.target === lightbox) closeLightbox(); });
983
984        window.addEventListener('keydown', function(e) {
985          if (lightbox && lightbox.style.display === 'flex') {
986            if (e.key === 'ArrowRight') showNextShot();
987            if (e.key === 'ArrowLeft') showPrevShot();
988            if (e.key === 'Escape') closeLightbox();
989          }
990        });
991      }
992
993      if (document.readyState === 'loading') {
994        document.addEventListener('DOMContentLoaded', initLightbox);
995      } else {
996        initLightbox();
997      }
998    })();
999  </script>
999
1000
1001</body>
1002</html>

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