{"id":699,"date":"2026-02-20T13:17:33","date_gmt":"2026-02-20T13:17:33","guid":{"rendered":"https:\/\/tartuvalgus.ee\/?page_id=699"},"modified":"2026-08-31T12:05:14","modified_gmt":"2026-08-31T12:05:14","slug":"mtu-valgusklubi","status":"publish","type":"page","link":"https:\/\/tartuvalgus.ee\/en\/mtu-valgusklubi\/","title":{"rendered":"MT\u00dc Valgusklubi"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_0 et_pb_row et-vb-row--no-module et_flex_row\"><\/div>\n<\/div>\n\n<div class=\"et_pb_section_1 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_1 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_0 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p>TAVA<\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_heading_0 et_pb_heading et_pb_module et_flex_module\"><div class=\"et_pb_heading_container\"><h2 class=\"et_pb_module_header\">KES ME OLEME?<\/h2><\/div><\/div>\n\n<div class=\"et_pb_text_1 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><strong>MT\u00dc Valgusklubi<\/strong> on avalikes huvides tegutsev organisatsioon, mille asutasid 2011. aasta kevadel Eva Tallo ja Priit Tiimus. \u00dchingu juhatusse kuuluvad Eva Tallo ning 2012. aastal liitunud Elo Liiv.<\/p>\n<p>MT\u00dc Valgusklubi eesm\u00e4rgiks on valguskunsti- ja elektervalgustusalase teadlikkuse t\u00f5stmine ja teadmiste jagamine, mille saavutamiseks korraldatakse valguskunsti ja valgustusalaseid koolitusi, konverentse, seminare, t\u00f6\u00f6tubasid, info- ja teabep\u00e4evi ning valguskunsti ja elektervalgustuskujundust tutvustavaid ja propageerivaid avalikke \u00fcritusi, sh festivale.<\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_2 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_2 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_1 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_2 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p>AJALUGU<\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_heading_1 et_pb_heading et_pb_module et_flex_module\"><div class=\"et_pb_heading_container\"><h2 class=\"et_pb_module_header\">MT\u00dc VALGUSKLUBI<\/h2><\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_3 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_2 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_12_24_phone\">\n<div class=\"et_pb_text_3 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><ul>\n<li>Muudab valguse KUULDAVAKS seminaride ja konverentside abil, annab valgusalast n\u00f5u ja koolitust, suunab erinevate valgusalaste teadmiste juurde;<\/li>\n<li>Muudab valguse N\u00c4HTAVAKS, anal\u00fc\u00fcsides ja t\u00f5stes esile valgusprojekte, korraldades valgusele p\u00fchendatud projekte ja \u00f5ppek\u00e4ike linnaruumis;<\/li>\n<li>Muudab valguse KUNSTIKS, luues ise ja edendades valgusinstallatsioone, kaasates inimesi aktsioonidesse;<\/li>\n<li>\u00dchendab inimesi, kelle jaoks valgus ei ole vaid \u00f6\u00f6 ja p\u00e4eva vaheldumine, vaid REAALSUSE MUUTMISE V\u00d5IMALUS.<\/li>\n<\/ul>\n<\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_4 et_pb_row et-vb-row--no-module et_flex_row\">\n<div class=\"et_pb_column_3 et_pb_column et-last-child et_flex_column et_pb_column_empty et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_3 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_5 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_4 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_4 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p>TAVA<\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_heading_2 et_pb_heading et_pb_module et_flex_module\"><div class=\"et_pb_heading_container\"><h2 class=\"et_pb_module_header\">SENI TEHTUD<\/h2><\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_6 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_5 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_16_24 et_flex_column_16_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_5 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p>2024 \u2013 Tartu Valgus | TAVA24 korraldamine<\/p>\n<p>2021 \u2013 Tartu Valgus | TAVA2021 korraldamine<\/p>\n<p>2021 \u2013 Narva V\u00e4ike Valgus korraldamine<\/p>\n<p>2018 \u2013 Tartu Valgus | TAVA2018 korraldamine<\/p>\n<p>2017 \u2013 Tallinna Talvefestivali kaaskorraldamine<\/p>\n<p>2016 \u2013 Tartu Valgus ehk TAVA2016 korraldamine<\/p>\n<p>2016 \u2013 Kesklinna Talvefestivali korraldamine<\/p>\n<p>2013 \u2013 Tallinna Valgusbiennaali<\/p>\n<p>2013 \u2013 Arhitektidele, kinnisvaraarendajatele ja arhitektuuritudengitele suunatud rahvusvaheline seminar \u201cElektervalgustusprojektid\u201d, n\u00e4itamaks valgustusprojekti ja valgustusspetsialisti vajalikkust arhitektuursel projekteerimisel, sise- ja v\u00e4lisruumide kujundamisel.<\/p>\n<p>2012 \u2013 valgusinstallatsioon Tallinna Linnahalli tunnelis \/ Disaini \u00d6\u00f6<\/p>\n<p>2011 \u2013 avalik \u00fcritus \u201cValgus linnaruumi kujundajana\u201d Tallinna Arhitektuuribiennaali raames, n\u00e4itlikustamaks valgusinstallatsioonide rolli linnaruumi kujundamisel<\/p>\n<p>2011 \u2013 heli- ja valgusshow Metro Plaza fassaadil Disaini\u00f6\u00f6 raames<\/p>\n<p>2011 \u2013 pop-up galerii \u201c\u00d6\u00d6: Was it a dream\u201d valguslahendus ja valgusinstallatsioon Heliose kinos<\/p>\n<p>Igal aastal p\u00fc\u00fcame l\u00e4bi viia Gerilja Valgustuse nimelist \u00fcrituste seeriat, mille eesm\u00e4rgiks on linnaruumis alavalgustatud valukohtade v\u00e4ljatoomine. Gerilja Valgustuse liikumine on v\u00f5itlus halva ja raiskava valgustuse vastu, mis p\u00fc\u00fcab valguse kontrasti kasutades osutada v\u00f5imalustele, kuidas muuta valguse abil esiteks reaalsust ning teiseks ka suhtumist kohtadesse, mida seni on v\u00e4lditud.<\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_4 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_7 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_6 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_12_24 et_flex_column_12_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_6 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p>ARHIIV<\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_heading_3 et_pb_heading et_pb_module et_flex_module\"><div class=\"et_pb_heading_container\"><h2 class=\"et_pb_module_header\">Tava tipphetked<\/h2><\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_8 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_7 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><div class=\"tv-photo-gallery\">\n\n  <!-- =====================================================\n       RIDA 1 \u2014 LIIGUB VASAKULE\n  ====================================================== -->\n\n  <div class=\"tv-gallery-row tv-row-left\">\n\n    <div class=\"tv-gallery-track\">\n\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A7444-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A7200-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A6967-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A6924-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A6900-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A6895-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A6807-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A6800-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A6570-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A1276-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n\n      <!-- Duplikaadid sujuva loopi jaoks -->\n\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A7444-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A7200-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A6967-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A6924-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A6900-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A6895-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A6807-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A6800-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A6570-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A1276-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n\n    <\/div>\n\n  <\/div>\n\n\n  <!-- =====================================================\n       RIDA 2 \u2014 LIIGUB PAREMALE\n  ====================================================== -->\n\n  <div class=\"tv-gallery-row tv-row-right\">\n\n    <div class=\"tv-gallery-track\">\n\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A1242-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A1232-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A1150-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A1145-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A1018-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A0950-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A0942-copy-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A0886-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A0665-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A0632-scaled.jpg\" alt=\"Tartu Valgus\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n\n      <!-- Duplikaadid sujuva loopi jaoks -->\n\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A1242-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A1232-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A1150-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A1145-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A1018-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A0950-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A0942-copy-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A0886-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A0665-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n      <img decoding=\"async\" data-src=\"https:\/\/tartuvalgus.ee\/wp-content\/uploads\/2026\/08\/BB5A0632-scaled.jpg\" alt=\"\" aria-hidden=\"true\" draggable=\"false\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1707;\">\n\n    <\/div>\n\n  <\/div>\n\n<\/div>\n\n\n<!-- =====================================================\n     LIGHTBOX\n====================================================== -->\n\n<div class=\"tv-lightbox\" id=\"tvLightbox\">\n\n  <!-- Sulgemine -->\n\n  <button\n    class=\"tv-lightbox-close\"\n    aria-label=\"Sulge galerii\"\n    type=\"button\"\n  >\n    <span><\/span>\n    <span><\/span>\n  <\/button>\n\n\n  <!-- EELMINE -->\n\n  <button\n    class=\"tv-lightbox-arrow tv-arrow-prev\"\n    aria-label=\"Eelmine pilt\"\n    type=\"button\"\n  >\n    <span>\u2190<\/span>\n  <\/button>\n\n\n  <!-- SISU -->\n\n  <div class=\"tv-lightbox-content\">\n\n    <div class=\"tv-main-image-wrap\">\n      <img decoding=\"async\"\n        id=\"tvMainImage\"\n        src=\"\"\n        alt=\"\"\n      >\n    <\/div>\n\n\n    <!-- ALUMINE RIBA -->\n\n    <div class=\"tv-lightbox-bottom\">\n\n      <div class=\"tv-counter\">\n\n        <span id=\"tvCurrentNumber\">\n          01\n        <\/span>\n\n        <span class=\"tv-counter-line\"><\/span>\n\n        <span id=\"tvTotalNumber\">\n          01\n        <\/span>\n\n      <\/div>\n\n\n      <div\n        class=\"tv-thumbnails\"\n        id=\"tvThumbnails\"\n      ><\/div>\n\n    <\/div>\n\n  <\/div>\n\n\n  <!-- J\u00c4RGMINE -->\n\n  <button\n    class=\"tv-lightbox-arrow tv-arrow-next\"\n    aria-label=\"J\u00e4rgmine pilt\"\n    type=\"button\"\n  >\n    <span>\u2192<\/span>\n  <\/button>\n\n<\/div>\n\n\n<style>\n\n\/* =====================================================\n   GALERII\n===================================================== *\/\n\n.tv-photo-gallery {\n\n  width: 100%;\n\n  overflow: hidden;\n\n  background: #fff;\n\n}\n\n\n.tv-gallery-row {\n\n  width: 100%;\n\n  overflow: hidden;\n\n  margin-bottom: 16px;\n\n}\n\n\n.tv-gallery-row:last-child {\n\n  margin-bottom: 0;\n\n}\n\n\n.tv-gallery-track {\n\n  display: flex;\n\n  width: max-content;\n\n  gap: 16px;\n\n  will-change: transform;\n\n}\n\n\n\/* =====================================================\n   GALERII PILDID\n===================================================== *\/\n\n.tv-gallery-track img {\n\n  display: block;\n\n  width: 400px;\n\n  height: 265px;\n\n  object-fit: cover;\n\n  border-radius: 0;\n\n  flex-shrink: 0;\n\n  cursor: zoom-in;\n\n  user-select: none;\n\n  -webkit-user-drag: none;\n\n  transition:\n    transform 0.5s cubic-bezier(.22,.61,.36,1),\n    filter 0.5s ease;\n\n}\n\n\n.tv-gallery-track img:hover {\n\n  transform: scale(1.025);\n\n  filter: brightness(1.06);\n\n}\n\n\n\/* =====================================================\n   AEGLANE LIIKUMINE\n===================================================== *\/\n\n.tv-row-left .tv-gallery-track {\n\n  animation:\n    tvMoveLeft 220s linear infinite;\n\n}\n\n\n.tv-row-right .tv-gallery-track {\n\n  animation:\n    tvMoveRight 250s linear infinite;\n\n}\n\n\n.tv-gallery-row:hover .tv-gallery-track {\n\n  animation-play-state: paused;\n\n}\n\n\n@keyframes tvMoveLeft {\n\n  from {\n\n    transform: translateX(0);\n\n  }\n\n  to {\n\n    transform: translateX(-50%);\n\n  }\n\n}\n\n\n@keyframes tvMoveRight {\n\n  from {\n\n    transform: translateX(-50%);\n\n  }\n\n  to {\n\n    transform: translateX(0);\n\n  }\n\n}\n\n\n\/* =====================================================\n   LIGHTBOX\n   20% MEN\u00dc\u00dc VASAKUL\n===================================================== *\/\n\n.tv-lightbox {\n\n  position: fixed;\n\n  left: 20%;\n  right: 0;\n  top: 0;\n  bottom: 0;\n\n  z-index: 999999;\n\n  display: flex;\n\n  align-items: center;\n\n  justify-content: center;\n\n  background:\n    rgba(10, 10, 10, 0.96);\n\n  opacity: 0;\n\n  visibility: hidden;\n\n  transition:\n    opacity 0.4s ease,\n    visibility 0.4s ease;\n\n  backdrop-filter: blur(12px);\n\n  -webkit-backdrop-filter: blur(12px);\n\n}\n\n\n.tv-lightbox.is-open {\n\n  opacity: 1;\n\n  visibility: visible;\n\n}\n\n\n\/* =====================================================\n   LIGHTBOX SISU\n===================================================== *\/\n\n.tv-lightbox-content {\n\n  width:\n    calc(100% - 100px);\n\n  height:\n    calc(100% - 100px);\n\n  display: flex;\n\n  flex-direction: column;\n\n  justify-content: center;\n\n  position: relative;\n\n}\n\n\n\/* =====================================================\n   SUUR PILT\n===================================================== *\/\n\n.tv-main-image-wrap {\n\n  width: 100%;\n\n  height:\n    calc(100% - 95px);\n\n  display: flex;\n\n  align-items: center;\n\n  justify-content: center;\n\n  overflow: hidden;\n\n}\n\n\n.tv-main-image-wrap img {\n\n  display: block;\n\n  max-width: 100%;\n\n  max-height: 100%;\n\n  width: auto;\n\n  height: auto;\n\n  object-fit: contain;\n\n  user-select: none;\n\n  -webkit-user-drag: none;\n\n  box-shadow:\n    0 30px 100px rgba(0,0,0,0.45);\n\n  transition:\n    opacity 0.25s ease,\n    transform 0.35s ease;\n\n}\n\n\n\/* =====================================================\n   LIGHTBOX ALUMINE OSA\n===================================================== *\/\n\n.tv-lightbox-bottom {\n\n  height: 75px;\n\n  display: flex;\n\n  align-items: center;\n\n  gap: 30px;\n\n  margin-top: 20px;\n\n}\n\n\n\/* =====================================================\n   COUNTER\n===================================================== *\/\n\n.tv-counter {\n\n  color:\n    rgba(255,255,255,0.8);\n\n  font-family:\n    Arial, sans-serif;\n\n  font-size: 13px;\n\n  letter-spacing:\n    0.08em;\n\n  white-space: nowrap;\n\n  display: flex;\n\n  align-items: center;\n\n  gap: 10px;\n\n}\n\n\n.tv-counter-line {\n\n  display: block;\n\n  width: 25px;\n\n  height: 1px;\n\n  background:\n    rgba(255,255,255,0.35);\n\n}\n\n\n\/* =====================================================\n   THUMBNAILID\n===================================================== *\/\n\n.tv-thumbnails {\n\n  display: flex;\n\n  gap: 8px;\n\n  overflow-x: auto;\n\n  scrollbar-width: none;\n\n  flex: 1;\n\n  padding: 5px 0;\n\n}\n\n\n.tv-thumbnails::-webkit-scrollbar {\n\n  display: none;\n\n}\n\n\n.tv-thumb {\n\n  width: 70px;\n\n  height: 48px;\n\n  flex-shrink: 0;\n\n  object-fit: cover;\n\n  opacity: 0.35;\n\n  cursor: pointer;\n\n  transition:\n    opacity 0.25s ease,\n    transform 0.25s ease;\n\n}\n\n\n.tv-thumb:hover {\n\n  opacity: 0.75;\n\n}\n\n\n.tv-thumb.active {\n\n  opacity: 1;\n\n  transform:\n    translateY(-2px);\n\n}\n\n\n\/* =====================================================\n   NOOLED\n===================================================== *\/\n\n.tv-lightbox-arrow {\n\n  position: absolute;\n\n  top: 50%;\n\n  transform:\n    translateY(-50%);\n\n  width: 65px;\n\n  height: 80px;\n\n  border: 0;\n\n  background: transparent;\n\n  color: #fff;\n\n  cursor: pointer;\n\n  font-size: 30px;\n\n  display: flex;\n\n  align-items: center;\n\n  justify-content: center;\n\n  opacity: 0.65;\n\n  z-index: 10;\n\n  transition:\n    opacity 0.25s ease,\n    transform 0.25s ease;\n\n}\n\n\n.tv-lightbox-arrow:hover {\n\n  opacity: 1;\n\n}\n\n\n.tv-arrow-prev {\n\n  left: 10px;\n\n}\n\n\n.tv-arrow-next {\n\n  right: 10px;\n\n}\n\n\n.tv-arrow-prev:hover {\n\n  transform:\n    translate(-5px, -50%);\n\n}\n\n\n.tv-arrow-next:hover {\n\n  transform:\n    translate(5px, -50%);\n\n}\n\n\n\/* =====================================================\n   SULGEMISE NUPP\n===================================================== *\/\n\n.tv-lightbox-close {\n\n  position: absolute;\n\n  top: 20px;\n\n  right: 20px;\n\n  width: 45px;\n\n  height: 45px;\n\n  border: 0;\n\n  background: transparent;\n\n  cursor: pointer;\n\n  z-index: 20;\n\n  opacity: 0.65;\n\n  transition:\n    opacity 0.25s ease;\n\n}\n\n\n.tv-lightbox-close:hover {\n\n  opacity: 1;\n\n}\n\n\n.tv-lightbox-close span {\n\n  position: absolute;\n\n  top: 22px;\n\n  left: 8px;\n\n  width: 28px;\n\n  height: 1px;\n\n  background: #fff;\n\n}\n\n\n.tv-lightbox-close span:first-child {\n\n  transform:\n    rotate(45deg);\n\n}\n\n\n.tv-lightbox-close span:last-child {\n\n  transform:\n    rotate(-45deg);\n\n}\n\n\n\/* =====================================================\n   MOBIIL\n===================================================== *\/\n\n@media (max-width: 767px) {\n\n  \/*\n   * Mobiilis kasutame kogu ekraani.\n   *\/\n\n  .tv-lightbox {\n\n    left: 0;\n\n  }\n\n\n  .tv-gallery-row {\n\n    margin-bottom: 10px;\n\n  }\n\n\n  .tv-gallery-track {\n\n    gap: 10px;\n\n  }\n\n\n  .tv-gallery-track img {\n\n    width: 270px;\n\n    height: 180px;\n\n  }\n\n\n  .tv-row-left .tv-gallery-track {\n\n    animation-duration:\n      130s;\n\n  }\n\n\n  .tv-row-right .tv-gallery-track {\n\n    animation-duration:\n      130s;\n\n  }\n\n\n  .tv-lightbox-content {\n\n    width:\n      calc(100% - 35px);\n\n    height:\n      calc(100% - 70px);\n\n  }\n\n\n  .tv-main-image-wrap {\n\n    height:\n      calc(100% - 65px);\n\n  }\n\n\n  .tv-thumbnails {\n\n    display: none;\n\n  }\n\n\n  .tv-counter {\n\n    margin: auto;\n\n  }\n\n\n  .tv-lightbox-arrow {\n\n    width: 45px;\n\n    height: 60px;\n\n    font-size: 25px;\n\n  }\n\n\n  .tv-arrow-prev {\n\n    left: 0;\n\n  }\n\n\n  .tv-arrow-next {\n\n    right: 0;\n\n  }\n\n\n  .tv-lightbox-close {\n\n    top: 12px;\n\n    right: 12px;\n\n  }\n\n}\n\n\n\/* =====================================================\n   V\u00c4HENDATUD LIIKUMINE\n===================================================== *\/\n\n@media (prefers-reduced-motion: reduce) {\n\n  .tv-row-left .tv-gallery-track,\n  .tv-row-right .tv-gallery-track {\n\n    animation: none;\n\n  }\n\n}\n\n<\/style>\n\n\n<script>\n\ndocument.addEventListener(\n  \"DOMContentLoaded\",\n  function () {\n\n\n    \/* =================================================\n       ELEMENDID\n    ================================================= *\/\n\n    const gallery =\n      document.querySelector(\n        \".tv-photo-gallery\"\n      );\n\n    const lightbox =\n      document.getElementById(\n        \"tvLightbox\"\n      );\n\n    const mainImage =\n      document.getElementById(\n        \"tvMainImage\"\n      );\n\n    const thumbnails =\n      document.getElementById(\n        \"tvThumbnails\"\n      );\n\n    const currentNumber =\n      document.getElementById(\n        \"tvCurrentNumber\"\n      );\n\n    const totalNumber =\n      document.getElementById(\n        \"tvTotalNumber\"\n      );\n\n    const closeButton =\n      document.querySelector(\n        \".tv-lightbox-close\"\n      );\n\n    const prevButton =\n      document.querySelector(\n        \".tv-arrow-prev\"\n      );\n\n    const nextButton =\n      document.querySelector(\n        \".tv-arrow-next\"\n      );\n\n\n    if (\n      !gallery ||\n      !lightbox ||\n      !mainImage\n    ) {\n\n      return;\n\n    }\n\n\n    \/* =================================================\n       KOGU GALERII ORIGINAALPILDID\n\n       NB! Pildi tegeliku aadressi leidmiseks\n       kontrollime k\u00f5igepealt levinumaid\n       lazy-load atribuute (data-src,\n       data-lazy-src jne), sest paljud\n       WordPressi cache\/optimeerimise\n       pistikprogrammid (WP Rocket,\n       LiteSpeed Cache, Autoptimize, Smush jt)\n       asendavad ekraaniv\u00e4listel piltidel\n       src-atribuudi platshoolder-pildiga,\n       kuni pilt j\u00f5uab vaatev\u00e4lja.\n\n       Kuna see galerii on l\u00f5putult liikuv\n       \"marquee\" ja suur osa pilte ei j\u00f5uagi\n       kunagi tegelikult ekraanile enne kliki\n       tegemist, tekkis varasemas versioonis\n       olukord, kus src polnud veel \u00f5ige\n       v\u00e4\u00e4rtusega ja klikk ei leidnud pilti\n       massiivist \u00fcles \u2014 mist\u00f5ttu lightbox\n       m\u00f5ne pildi puhul lihtsalt ei avanenud.\n\n       Lahendus: igale pildile pannakse kohe\n       DOMContentLoaded k\u00e4igus k\u00fclge kindel\n       data-gallery-index, mille j\u00e4rgi klikk\n       hiljem pilti otsib \u2014 s\u00f5ltumata sellest,\n       mis on src atribuudis parasjagu kirjas.\n    ================================================= *\/\n\n    const images = [];\n\n    const seenSources = new Map();\n\n\n    function getRealSrc(img) {\n\n      return (\n        img.dataset.lazySrc ||\n        img.dataset.src ||\n        img.dataset.original ||\n        img.getAttribute(\"src\") ||\n        \"\"\n      );\n\n    }\n\n\n    gallery\n      .querySelectorAll(\n        \".tv-gallery-track img\"\n      )\n      .forEach(\n        function (img) {\n\n          const realSrc =\n            getRealSrc(img);\n\n          if (!realSrc) {\n\n            return;\n\n          }\n\n\n          if (\n            !seenSources.has(\n              realSrc\n            )\n          ) {\n\n            seenSources.set(\n              realSrc,\n              images.length\n            );\n\n            images.push(\n              realSrc\n            );\n\n          }\n\n\n          img.dataset.galleryIndex =\n            seenSources.get(\n              realSrc\n            );\n\n        }\n      );\n\n\n    let currentIndex = 0;\n\n\n    \/* =================================================\n       THUMBNAILID\n    ================================================= *\/\n\n    images.forEach(\n      function (src, index) {\n\n        const thumb =\n          document.createElement(\n            \"img\"\n          );\n\n        thumb.src = src;\n\n        thumb.className =\n          \"tv-thumb\";\n\n        thumb.alt = \"\";\n\n\n        thumb.addEventListener(\n          \"click\",\n          function () {\n\n            showImage(index);\n\n          }\n        );\n\n\n        thumbnails.appendChild(\n          thumb\n        );\n\n      }\n    );\n\n\n    totalNumber.textContent =\n      String(\n        images.length\n      ).padStart(2, \"0\");\n\n\n    \/* =================================================\n       THUMBNAILIDE UUENDAMINE\n    ================================================= *\/\n\n    function updateThumbnails() {\n\n      const thumbs =\n        thumbnails.querySelectorAll(\n          \".tv-thumb\"\n        );\n\n\n      thumbs.forEach(\n        function (\n          thumb,\n          index\n        ) {\n\n          thumb.classList.toggle(\n            \"active\",\n            index === currentIndex\n          );\n\n        }\n      );\n\n\n      const activeThumb =\n        thumbs[currentIndex];\n\n\n      if (activeThumb) {\n\n        activeThumb.scrollIntoView(\n          {\n            behavior: \"smooth\",\n            block: \"nearest\",\n            inline: \"center\"\n          }\n        );\n\n      }\n\n    }\n\n\n    \/* =================================================\n       PILDI N\u00c4ITAMINE\n    ================================================= *\/\n\n    function showImage(index) {\n\n      if (images.length === 0) {\n\n        return;\n\n      }\n\n\n      if (\n        index < 0\n      ) {\n\n        index =\n          images.length - 1;\n\n      }\n\n\n      if (\n        index >= images.length\n      ) {\n\n        index = 0;\n\n      }\n\n\n      currentIndex =\n        index;\n\n\n      mainImage.style.opacity =\n        \"0\";\n\n\n      setTimeout(\n        function () {\n\n          mainImage.src =\n            images[currentIndex];\n\n\n          mainImage.onload =\n            function () {\n\n              mainImage.style.opacity =\n                \"1\";\n\n            };\n\n        },\n        120\n      );\n\n\n      currentNumber.textContent =\n        String(\n          currentIndex + 1\n        ).padStart(\n          2,\n          \"0\"\n        );\n\n\n      updateThumbnails();\n\n    }\n\n\n    \/* =================================================\n       J\u00c4RGMINE\n    ================================================= *\/\n\n    function nextImage() {\n\n      showImage(\n        currentIndex + 1\n      );\n\n    }\n\n\n    \/* =================================================\n       EELMINE\n    ================================================= *\/\n\n    function previousImage() {\n\n      showImage(\n        currentIndex - 1\n      );\n\n    }\n\n\n    \/* =================================================\n       LIGHTBOX AVAMINE\n    ================================================= *\/\n\n    function openLightbox(index) {\n\n      showImage(index);\n\n\n      lightbox.classList.add(\n        \"is-open\"\n      );\n\n\n      document.body.style.overflow =\n        \"hidden\";\n\n\n      gallery\n        .querySelectorAll(\n          \".tv-gallery-track\"\n        )\n        .forEach(\n          function (track) {\n\n            track.style.animationPlayState =\n              \"paused\";\n\n          }\n        );\n\n    }\n\n\n    \/* =================================================\n       LIGHTBOX SULGEMINE\n    ================================================= *\/\n\n    function closeLightbox() {\n\n      lightbox.classList.remove(\n        \"is-open\"\n      );\n\n\n      document.body.style.overflow =\n        \"\";\n\n\n      gallery\n        .querySelectorAll(\n          \".tv-gallery-track\"\n        )\n        .forEach(\n          function (track) {\n\n            track.style.animationPlayState =\n              \"\";\n\n          }\n        );\n\n    }\n\n\n    \/* =================================================\n       GALERII PILTIDE KLIKK\n\n       NB! Otsime pildi enam ei \"src\"\n       atribuudi v\u00e4\u00e4rtuse j\u00e4rgi, vaid\n       varem k\u00fclge pandud\n       data-gallery-index j\u00e4rgi \u2014 see\n       t\u00f6\u00f6tab ka siis, kui lazy-load\n       skript on src ajutiselt asendanud.\n    ================================================= *\/\n\n    gallery\n      .querySelectorAll(\n        \".tv-gallery-track img\"\n      )\n      .forEach(\n        function (img) {\n\n          img.addEventListener(\n            \"click\",\n            function () {\n\n              const indexAttr =\n                img.dataset\n                  .galleryIndex;\n\n\n              if (\n                indexAttr ===\n                undefined\n              ) {\n\n                return;\n\n              }\n\n\n              const index =\n                Number(\n                  indexAttr\n                );\n\n\n              if (\n                !Number.isNaN(\n                  index\n                )\n              ) {\n\n                openLightbox(\n                  index\n                );\n\n              }\n\n            }\n          );\n\n        }\n      );\n\n\n    \/* =================================================\n       NOOLED\n    ================================================= *\/\n\n    prevButton.addEventListener(\n      \"click\",\n      function (event) {\n\n        event.stopPropagation();\n\n        previousImage();\n\n      }\n    );\n\n\n    nextButton.addEventListener(\n      \"click\",\n      function (event) {\n\n        event.stopPropagation();\n\n        nextImage();\n\n      }\n    );\n\n\n    \/* =================================================\n       SULGEMINE\n    ================================================= *\/\n\n    closeButton.addEventListener(\n      \"click\",\n      function () {\n\n        closeLightbox();\n\n      }\n    );\n\n\n    lightbox.addEventListener(\n      \"click\",\n      function (event) {\n\n        if (\n          event.target ===\n          lightbox\n        ) {\n\n          closeLightbox();\n\n        }\n\n      }\n    );\n\n\n    \/* =================================================\n       KLAVIATUUR\n    ================================================= *\/\n\n    document.addEventListener(\n      \"keydown\",\n      function (event) {\n\n        if (\n          !lightbox.classList.contains(\n            \"is-open\"\n          )\n        ) {\n\n          return;\n\n        }\n\n\n        if (\n          event.key ===\n          \"Escape\"\n        ) {\n\n          closeLightbox();\n\n        }\n\n\n        if (\n          event.key ===\n          \"ArrowRight\"\n        ) {\n\n          nextImage();\n\n        }\n\n\n        if (\n          event.key ===\n          \"ArrowLeft\"\n        ) {\n\n          previousImage();\n\n        }\n\n      }\n    );\n\n\n    \/* =================================================\n       MOBIILI SWIPE\n    ================================================= *\/\n\n    let touchStartX = 0;\n\n    let touchEndX = 0;\n\n\n    mainImage.addEventListener(\n      \"touchstart\",\n      function (event) {\n\n        touchStartX =\n          event\n            .changedTouches[0]\n            .screenX;\n\n      },\n      {\n        passive: true\n      }\n    );\n\n\n    mainImage.addEventListener(\n      \"touchend\",\n      function (event) {\n\n        touchEndX =\n          event\n            .changedTouches[0]\n            .screenX;\n\n\n        const difference =\n          touchStartX -\n          touchEndX;\n\n\n        if (\n          Math.abs(\n            difference\n          ) < 50\n        ) {\n\n          return;\n\n        }\n\n\n        if (\n          difference > 0\n        ) {\n\n          nextImage();\n\n        } else {\n\n          previousImage();\n\n        }\n\n      },\n      {\n        passive: true\n      }\n    );\n\n\n    \/* =================================================\n       ESIMENE PILT\n    ================================================= *\/\n\n    if (\n      images.length > 0\n    ) {\n\n      mainImage.src =\n        images[0];\n\n    }\n\n  }\n);\n\n<\/script><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-699","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tartuvalgus.ee\/en\/wp-json\/wp\/v2\/pages\/699","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tartuvalgus.ee\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tartuvalgus.ee\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tartuvalgus.ee\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/tartuvalgus.ee\/en\/wp-json\/wp\/v2\/comments?post=699"}],"version-history":[{"count":36,"href":"https:\/\/tartuvalgus.ee\/en\/wp-json\/wp\/v2\/pages\/699\/revisions"}],"predecessor-version":[{"id":2198,"href":"https:\/\/tartuvalgus.ee\/en\/wp-json\/wp\/v2\/pages\/699\/revisions\/2198"}],"wp:attachment":[{"href":"https:\/\/tartuvalgus.ee\/en\/wp-json\/wp\/v2\/media?parent=699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}