PageSourceSearch

https://www.farmersjournal.ie/focus/pensions-and-savings-/tax-planning-is-about-efficiency-not-saving-930359

html farmersjournal.ie collected 2026-09-24 18:30:40 UTC 213,092 bytes, 5,572 lines download raw bytes

vendor: 1 bytes, line 1
1
2<script type="text/javascript">	
3	var my_last_article = 930359;
4    document.cookie="lastarticle="+my_last_article;    
5</script>
5
6
7
8<script type="text/javascript" class="optanon-category-C0002" src="https://www.farmersjournal.ie/js/jquery-3.2.1.min.js"></script>
vendor: 1 bytes, line 8
8
9<script type="text/javascript" class="optanon-category-C0002" src="/js/jquery-migrate-3.js"></script>
9
10
11<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
12<link href="https://cdn.jsdelivr.net/npm/glightbox/dist/css/glightbox.min.css" rel="stylesheet">
13<script src="https://cdn.jsdelivr.net/npm/glightbox/dist/js/glightbox.min.js"></script>
13
14
15<style>
16
17
18
19@media (max-width: 768px) {
20	p > tickaroo-liveblog{
21		width: 350px !important;
22	}
23}
24
25
26@media (max-width: 480px) {
27	p > tickaroo-liveblog{
28		width: 320px !important;
29	}
30}
31
32</style>
33
34
35
36
37
38<style type="text/css">
39.glightbox-clean .gslide-description {
40	background-color: #121212;
41}
42
43.gslide-title {
44	color: white !important;
45}
46
47
48
49    .glightbox-clean .gclose {
50        opacity: 100 !important;
51        zoom: 1.5;        
52
53}
54
55
56
57/*.tik4-live__container {
58	width: 400px !important;
59	margin: auto !important;
60}*/
61
62
63p > tickaroo-liveblog {
64/*  width: 400px !important;*/
65  margin-left: auto !important;
66  margin-right: auto !important;
67  display: block;
68  /*max-width: 100%;*/
69}
70
71
72
73/* Desktop */
74p > tickaroo-liveblog {
75  width: 608px;
76  max-width: 608px;
77}
78
79/* Mobile */
80@media (max-width: 767px) {
81  p > tickaroo-liveblog {
82    width: 100%;
83    max-width: 100%;
84  }
85}
86
87
88
89
90
91
92</style>
93
94<!--
95<a href="image.jpg" data-lightbox="image-gallery" data-title="Caption da imagem">
96</a>
97-->
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112<!DOCTYPE html>
113<html lang="en" dir="ltr" class="sid-plesk">
114
115<head>
116    <link rel="icon" href="/2024-files/favicon-32x32.ico" sizes="32x32" type="image/x-icon">
117
118
119
120    <!-- Anti-FOUC: esconde o container dos botões de auth do header até o refreshAuthState() decidir o estado correto -->
121    <style>
122        /* Container direito do header desktop (Subscribe / Sign In / Podcasts / Epaper / My Account) */
123        #header .justify-end.mr-4 {
124            visibility: hidden !important;
125        }
126        body.auth-resolved #header .justify-end.mr-4 {
127            visibility: visible !important;
128        }
129
130        /* Trava extra para o SUBSCRIBE: começa invisível no HTML e SÓ é liberado
131           quando o código ativamente remove a classe .ifj-locked-invisible.
132           Isso blinda contra qualquer removeClass('hidden') prematuro. */
133        .ifj-locked-invisible {
134            visibility: hidden !important;
135            opacity: 0 !important;
136            pointer-events: none !important;
137        }
138    </style>
139
140    <!--<link rel="preload" href="./2024-files/tailwind.css" as="style" crossorigin="anonymous">-->
141        <!--<link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet">-->
142
143
144
145
146<!-- re. podcast open the player - if the user was using the player on your last access -->
147
148<script>
149/*(function () {
150  try {
151    var PLAYER_STORAGE_KEY = 'ifj_podcast_player_state';
152    var SHELL_PUBLIC_URL = '/my-podcasts-working-on.php';
153
154    var CURRENT_PHP_FILE = "article.php";
155    var SHELL_PHP_FILE = 'my-podcasts-working-on.php';
156
157    var raw = localStorage.getItem(PLAYER_STORAGE_KEY);
158    if (!raw) return;
159
160    var state = JSON.parse(raw);
161    if (!state || !state.audioUrl || !state.rssUrl) return;
162
163    if (state.playerState === 'closed' || state.dismissed === true) return;
164
165    var path = (window.location.pathname || '').replace(/\/+$/, '') || '/';
166    var shellPath = SHELL_PUBLIC_URL.replace(/\/+$/, '') || '/';
167
168    if (path === shellPath) return;
169    if (CURRENT_PHP_FILE === SHELL_PHP_FILE) return;
170
171    try {
172      if (window.top && window.top !== window.self) {
173        if (window.top.IFJ_PODCAST_SHELL_ACTIVE === true) return;
174
175        var topDoc = window.top.document;
176        if (topDoc) {
177          var topPlayer = topDoc.getElementById('podcast-player');
178          var topFrame = topDoc.getElementById('siteFrame');
179
180          if (topPlayer || topFrame) return;
181        }
182      }
183    } catch (e) {}
184
185    if (window.IFJ_PODCAST_SHELL_ACTIVE === true) return;
186
187    var target = SHELL_PUBLIC_URL + '?resume=1&ref=' + encodeURIComponent(window.location.href);
188    window.location.replace(target);
189  } catch (e) {}
190})();*/
191</script>
191
192
193
194
195
196<!-- FlipPayIntegration TEST ENV -->
197
198<!--
198<script id="fp-config" src="https://cdn.flip-pay.cloud/uat/clients/agriculturaltrust/irishfarmersjournalie/config.js"></script>
vendor: 2 bytes, line 198
198
199<script id="fp-main" src="https://cdn.flip-pay.cloud/uat/flip-pay.js"></script>
199-->
200
201<!-- FlipPayIntegration PROD ENV -->
202<script id="fp-config" src="https://cdn.flip-pay.com/clients/agtr/farmersjournal.ie/config.js"></script>
vendor: 2 bytes, line 202
202
203<script id="fp-main" src="https://cdn.flip-pay.com/flip-pay.js?client-id=agtr"></script>
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230        
230<script src="https://cdn.tailwindcss.com" ></script>
230
231        <!--<link rel="preload" href="/2024-files/css/tailwind.purged.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
232  <noscript><link rel="stylesheet" href="/2024-files/css/tailwind.purged.min.css"></noscript>-->
233
234
235
236
237    <link rel="preload" href="/2024-files/css/2024-main-css.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
238
239
240
241        
242
243    <!-- CookiePro Cookies Consent Notice start for farmersjournal.ie -->
244<script type="text/javascript" src="https://cookie-cdn.cookiepro.com/consent/8dfdee53-14a0-4330-a2cf-704812646490/OtAutoBlock.js" ></script>
vendor: 2 bytes, line 244
244
245<script src="https://cookie-cdn.cookiepro.com/scripttemplates/otSDKStub.js"  type="text/javascript" charset="UTF-8" data-domain-script="8dfdee53-14a0-4330-a2cf-704812646490" ></script>
vendor: 2 bytes, line 245
245
246<script type="text/javascript">
247function OptanonWrapper() { }
248</script>
248
249<!-- CookiePro Cookies Consent Notice end for farmersjournal.ie -->
250
251    <meta http-equiv="Content-Security-Policy" connect-src="https://accounts.google.com/gsi/" frame-src="https://accounts.google.com/gsi/" script-src="https://accounts.google.com/gsi/client"  style-src="https://accounts.google.com/gsi/style">
252
253
254
255
256    
257
258    <!--    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">-->
259    <!--<link href="./2024-files/fonts/fonts_googleapis_com_css2_Roboto.css" rel="stylesheet">-->
260    <link rel="preload" href="/2024-files/fonts/fonts_googleapis_com_css2_Roboto.css" as="style" onload="this.rel='stylesheet'">
261
262
263    <!--    <link  href="https://fonts.googleapis.com/icon?family=Material+Icons"  rel="stylesheet"> -->
264    <link rel="preload" href="/2024-files/fonts/material_icons.css" as="style" onload="this.rel='stylesheet'">
265
266
267
268
269    <!--<link rel="preload" href="https://fonts.googleapis.com/css2?family=Anton+SC&display=swap"  as="font" type="font/woff2" crossorigin="anonymous">-->
270    <link rel="preload" href="/2024-files/fonts/fonts_googleapis_com_css2_Anton.css"  as="font" type="font/woff2" crossorigin="anonymous">
271
272
273    <!-- download https://www.onlinewebfonts.com/download/fca9014e73f16d1dd70d9de8db2d07a0 -->
274    <!--<link rel="preload" href="https://db.onlinewebfonts.com/c/fca9014e73f16d1dd70d9de8db2d07a0?family=Coranto+W01+2+Bold" as="font" type="font/woff2" crossorigin="anonymous">-->
275    <link rel="preload" href="/2024-files/fonts/coranto_2_headline_bold.css" as="font" type="font/woff2" crossorigin="anonymous">
276
277
278    <!-- download https://www.onlinewebfonts.com/download/91b4ef9c28324608b2bdddf7b8b7f0d4 -->
279    <!--<link rel="preload" href="https://db.onlinewebfonts.com/c/91b4ef9c28324608b2bdddf7b8b7f0d4?family=Coranto+W01+2+Regular" as="font" type="font/woff2" crossorigin="anonymous">-->
280    <link rel="preload" href="/2024-files/fonts/coranto_regular.css" as="font" type="font/woff2" crossorigin="anonymous">
281
282
283    <!--<link href="https://db.onlinewebfonts.com/c/5ce9469e01bc82e6d4c673b5ac4e7134?family=Coranto+W01+2+Headline+Bold" rel="stylesheet">-->
284    <link rel="preload" href="/2024-files/fonts/coranto_bold.css" as="font" type="font/woff2" crossorigin="anonymous">
285
286
287    
288
289    
290    
291    
291<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
291
292    
293    <!--<link rel="preload" rel="stylesheet" type="text/css" href="./2024-main-css.css">-->
294    <!--<link rel="preload" href="./2024-files/2024-main-css.css" as="style" crossorigin="anonymous">-->
295
296    <!-- web components -->
297    
297<script src="/2024-files/js/js-components/subscriberOnlyBadge.js" defer></script>
297
298    
298<script src="/2024-files/js/js-components/headerDesktopLoggedButtons.js" defer></script>
298
299    
299<script src="/2024-files/js/js-components/headerDesktopNotLoggedButtons.js" defer></script>
299
300    
300<script src="/2024-files/js/js-components/navMenuDesktopLoggedButtons.js" defer></script>
300
301    <!--
301<script src="/2024-files/js/js-components/headerDesktopLoggedAsFreeuserButtons.js" defer></script>
301-->
302
303
304
305
306    
306<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8514379819566682" crossorigin="anonymous"></script>
306
307
308
309
310
311
312
313
314
315
316    
316<script type='text/javascript'>
317        window.googletag = window.googletag || {cmd: []};
318        googletag.cmd.push(function() {
319
320
321
322
323
324         
325
326
327
328
329
330
331
332        /*googletag.defineSlot('/144848334/01_ifj_desktop_home_1680x1200_01', [1680, 1200], 'div-gpt-ad-1643811610086-0').addService(googletag.pubads());*/
333          googletag.defineSlot('/144848334/01_ifj_desktop_home_1680x1200_01', [1900, 1200], 'div-gpt-ad-1645627462320-0').addService(googletag.pubads());
334
335
336
337
338
339          /*HTPO top banner*/
340          googletag.defineSlot('/144848334/HPTO2026Banner', [970, 250], 'div-gpt-ad-1764777136500-0').addService(googletag.pubads());
341
342
343
344
345
346
347
348
349
350
351              
352
353
354
355        //googletag.pubads().disableInitialLoad();
356        //setTimeout(function(){ 
357        //    alert("Hello"); 
358        //    googletag.pubads().refresh() 
359        //}, 10000);
360         
361        //googletag.pubads().enableSingleRequest();
362       
363        googletag.enableServices();
364        });
365    </script>
365
366
367    <!-- type="text/plain" data-cookie-if="analytical" -->
368<script data-ad-client="ca-pub-8514379819566682" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" integrity="sha512-2OGxnxdeju0xN0hZPcC2/CCkHBCrCdKxQK3Dtf2Ujc7FWQF0f5DYd6trUJyd++g/37b+9BRf5A9ZU2tHiknijA==" crossorigin="anonymous"></script>
368
369
370
371<!-- Google Tag Manager -->
372<!-- type="text/plain" data-cookie-if="analytical" -->
373<!--
373<script  type="text/plain" class="optanon-category-C0002">
vendor: 327 bytes, lines 373-377
373(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
374new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
375j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
376'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
377})(window,document,'script','dataLayer','
377GTM-W2FCP4H
vendor: 3 bytes, line 377
377');
377</script>
377-->
378<!-- End Google Tag Manager -->
379<script>
vendor: 327 bytes, lines 379-383
379(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
380new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
381j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
382'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
383})(window,document,'script','dataLayer','
383GTM-W2FCP4H
vendor: 3 bytes, line 383
383');
383</script>
383
384<!-- End Google Tag Manager -->
385
386 
386<script>
387(function ($) {
388    "use strict";
389
390    const FLIPPAY_EVENTS_ENDPOINT = "https://api.farmersjournal.ie/v1/flippay/flippay_events.php";
391
392    function sanitiseName(name) {
393        name = (name || "custom_unknown").toString().toLowerCase();
394        name = name.replace(/[^a-z0-9_]/g, "_");
395        if (!/^[a-z]/.test(name)) {
396            name = "evt_" + name;
397        }
398        return name.substring(0, 100);
399    }
400
401    function postJson(url, payload) {
402        return fetch(url, {
403            method: "POST",
404            headers: {
405                "Content-Type": "application/json"
406            },
407            credentials: "omit",
408            body: JSON.stringify(payload)
409        }).then(function (response) {
410            return response.text().then(function (text) {
411                let parsed;
412                try {
413                    parsed = text ? JSON.parse(text) : {};
414                } catch (e) {
415                    parsed = { raw_response: text };
416                }
417
418                if (!response.ok) {
419                    const err = new Error("HTTP " + response.status);
420                    err.response = parsed;
421                    throw err;
422                }
423
424                return parsed;
425            });
426        });
427    }
428
429    function sendToServer(eventName, payload, sourceType, pub_id) {
430        const body = {
431            event_name: sanitiseName(eventName),
432            payload: payload || {},
433            pub_id: pub_id || "",
434            source_url: sourceType || "custom_site_event",
435            page_url: window.location.href,
436            page_path: window.location.pathname + window.location.search + window.location.hash,
437            page_title: document.title
438        };
439
440        postJson(FLIPPAY_EVENTS_ENDPOINT, body)
441            .then(function (res) {
442                console.log("[FlipPay→BigQuery SUCCESS]", eventName, res);
443            })
444            .catch(function (err) {
445                console.error("[FlipPay→BigQuery FAILED]", eventName, err.response || err.message || err);
446            });
447    }
448
449    // Public helper for AIDANS CUSTOM EVENTS
450    window.sendEventToBigQuery = function (eventName, payload, pub_id) {
451        const body = {
452            event_name: sanitiseName(eventName),
453            payload: payload || {},
454            pub_id: pub_id || "",
455            source_url: "custom_site_event",
456            page_url: window.location.href,
457            page_path: window.location.pathname + window.location.search + window.location.hash,
458            page_title: document.title
459        };
460
461        postJson(FLIPPAY_EVENTS_ENDPOINT, body)
462            .then(function (res) {
463                console.log("[Event→BigQuery]", eventName, res);
464            })
465            .catch(function (err) {
466                console.warn("[Event→BigQuery] failed", eventName, err.response || err.message || err);
467            });
468    };
469
470    // Flip-Pay documented event listener
471    document.addEventListener("fp_event_tracker", function (event) {
472        try {
473            const labelStyle = "color:#888;font-weight:600;";
474            const valueStyle = "color:#1e88e5;font-weight:600;";
475
476            const detail = (event && event.detail) ? event.detail : {};
477            const eventName = detail && detail.event_type ? detail.event_type : "NOT_SET";
478            const pub_id = "1";
479
480            console.groupCollapsed("%cFP:: Flip-Pay Event ▶ %c" + eventName, labelStyle, valueStyle);
481            console.log("%cFlip Event Type:%c " + eventName, labelStyle, valueStyle);
482            console.log("%cFlip Detail:%c see object below", labelStyle, valueStyle);
483            console.dir(detail);
484            console.groupEnd();
485
486            sendToServer(eventName, detail, "fp_event_tracker", pub_id);
487
488        } catch (e) {
489            console.error("FlipPay fp_event_tracker listener error", e, event);
490        }
491    });
492
493})(jQuery);
494</script>
494
495
496<!--AIDANS TRACKING USER ENGAGEMENT MODULE-->
497
498<script>
499(function () {
500
501  function getCookie(name) {
502    const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
503    return match ? decodeURIComponent(match[2]) : null;
504  }
505
506  function parseFpUserCookie() {
507    try {
508      const raw = getCookie('fp.user');
509      if (!raw) return null;
510      return JSON.parse(raw);
511    } catch (e) {
512      console.warn('Failed to parse fp.user cookie', e);
513      return null;
514    }
515  }
516
517  const fpUser = parseFpUserCookie();
518
519  if (fpUser && fpUser.id) {
520    window.FLIPPAY_USER_ID = String(fpUser.id);
521    window.FLIPPAY_USER_EMAIL = fpUser.email ? String(fpUser.email) : null;
522  } else {
523    window.FLIPPAY_USER_ID = null;
524    window.FLIPPAY_USER_EMAIL = null;
525  }
526
527})();
528</script>
528
529
530<script>
531(function () {
532  const TRACK_ENDPOINT = "https://api.farmersjournal.ie/v1/flippay/engagement_events.php";
533  const HEARTBEAT_MS = 5000;
534  const ACTIVE_WINDOW_MS = 30000;
535  const FLUSH_INTERVAL_MS = 15000;
536
537  const pageViewId = (window.crypto && crypto.randomUUID)
538    ? crypto.randomUUID()
539    : ("pv_" + Date.now() + "_" + Math.random().toString(36).slice(2));
540
541  const sessionId = getSessionId();
542  const anonymousId = getAnonymousId();
543
544  const loggedInUserId = window.FLIPPAY_USER_ID ? String(window.FLIPPAY_USER_ID) : null;
545  const loggedInUserEmail = window.FLIPPAY_USER_EMAIL ? String(window.FLIPPAY_USER_EMAIL) : null;
546  const isLoggedIn = !!loggedInUserId;
547  const userKey = loggedInUserId || anonymousId;
548
549  const sessionStart = Date.now();
550  let lastActivityAt = Date.now();
551  let totalEngagedMs = 0;
552  let bufferedIncrementMs = 0;
553  let lastFlushAt = Date.now();
554  let initialSent = false;
555
556  function getSessionId() {
557    const key = "flippay_session_id";
558    let value = sessionStorage.getItem(key);
559    if (!value) {
560      value = (window.crypto && crypto.randomUUID)
561        ? crypto.randomUUID()
562        : ("sess_" + Date.now() + "_" + Math.random().toString(36).slice(2));
563      sessionStorage.setItem(key, value);
564    }
565    return value;
566  }
567
568  function getAnonymousId() {
569    const key = "flippay_anonymous_id";
570    let value = localStorage.getItem(key);
571    if (!value) {
572      value = (window.crypto && crypto.randomUUID)
573        ? crypto.randomUUID()
574        : ("anon_" + Date.now() + "_" + Math.random().toString(36).slice(2));
575      localStorage.setItem(key, value);
576    }
577    return value;
578  }
579
580  function markActivity() {
581    lastActivityAt = Date.now();
582  }
583
584  function isVisible() {
585    return document.visibilityState === "visible";
586  }
587
588  function isRecentlyActive() {
589    return (Date.now() - lastActivityAt) <= ACTIVE_WINDOW_MS;
590  }
591
592  function buildPayload(eventName) {
593    return {
594      event_name: eventName,
595      page_view_id: pageViewId,
596      session_id: sessionId,
597
598      is_logged_in: isLoggedIn,
599      logged_in_user_id: loggedInUserId,
600      logged_in_user_email: loggedInUserEmail,
601      anonymous_id: anonymousId,
602      user_key: userKey,
603
604      platform: "web",
605      app_name: null,
606
607      page_url: location.href,
608      page_path: location.pathname + location.search + location.hash,
609      page_title: document.title,
610      referrer: document.referrer || null,
611
612      engaged_increment_ms: bufferedIncrementMs,
613      total_engaged_ms: totalEngagedMs,
614      elapsed_ms: Date.now() - sessionStart,
615      last_activity_age_ms: Date.now() - lastActivityAt,
616
617      visibility_state: document.visibilityState,
618      is_visible: isVisible(),
619      is_recently_active: isRecentlyActive(),
620
621      screen_width: window.screen ? window.screen.width : null,
622      screen_height: window.screen ? window.screen.height : null,
623      viewport_width: window.innerWidth || null,
624      viewport_height: window.innerHeight || null,
625      user_agent: navigator.userAgent || null,
626      language: navigator.language || null,
627      timezone: Intl.DateTimeFormat().resolvedOptions().timeZone || null,
628
629      client_ts: new Date().toISOString()
630    };
631  }
632
633  function send(payload) {
634    const body = JSON.stringify(payload);
635
636    if (navigator.sendBeacon) {
637      const blob = new Blob([body], { type: "application/json" });
638      return navigator.sendBeacon(TRACK_ENDPOINT, blob);
639    }
640
641    fetch(TRACK_ENDPOINT, {
642      method: "POST",
643      headers: { "Content-Type": "application/json" },
644      body: body,
645      keepalive: true,
646      credentials: "omit"
647    }).catch(function(){});
648
649    return true;
650  }
651
652  function flush(eventName) {
653    if (!initialSent) {
654      send(Object.assign({}, buildPayload("page_view"), {
655        engaged_increment_ms: 0
656      }));
657      initialSent = true;
658    }
659
660    if (eventName === "engagement_ping" && bufferedIncrementMs <= 0) {
661      return;
662    }
663
664    send(buildPayload(eventName));
665    bufferedIncrementMs = 0;
666    lastFlushAt = Date.now();
667  }
668
669  ["mousemove", "mousedown", "keydown", "scroll", "touchstart", "pointerdown"].forEach(function (evt) {
670    window.addEventListener(evt, markActivity, { passive: true });
671  });
672
673  send(Object.assign({}, buildPayload("page_view"), {
674    engaged_increment_ms: 0
675  }));
676  initialSent = true;
677
678  setInterval(function () {
679    if (isVisible() && isRecentlyActive()) {
680      totalEngagedMs += HEARTBEAT_MS;
681      bufferedIncrementMs += HEARTBEAT_MS;
682    }
683
684    if ((Date.now() - lastFlushAt >= FLUSH_INTERVAL_MS) && bufferedIncrementMs > 0) {
685      flush("engagement_ping");
686    }
687  }, HEARTBEAT_MS);
688
689  document.addEventListener("visibilitychange", function () {
690    if (document.visibilityState === "hidden") {
691      flush("page_hidden");
692    } else {
693      markActivity();
694    }
695  });
696
697  window.addEventListener("pagehide", function () {
698    flush("page_exit");
699  });
700})();
701</script>
701
702
703
704
705
706
707
708
709
710
711
712<script type="text/javascript" class="optanon-category-C0002" src="https://www3.farmersjournal.ie/js/jquery-3.2.1.min.js"></script>
vendor: 1 bytes, line 712
712
713<script type="text/javascript" class="optanon-category-C0002" src="https://www3.farmersjournal.ie/js/jquery-migrate-3.js"></script>
713
714
715<link rel="stylesheet" href="https://code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css">
716<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.js"></script>
716
717
718
719
720
721<!--  type="text/plain" data-cookie-if="analytical" -->
722<script>
723  window.fbAsyncInit = function() {
724    FB.init({
725      appId            : '1959631247585700',
726      autoLogAppEvents : true,
727      xfbml            : true,
728      version          : 'v2.11'
729    });
730  };
731
732  (function(d, s, id){
733     var js, fjs = d.getElementsByTagName(s)[0];
734     if (d.getElementById(id)) {return;}
735     js = d.createElement(s); js.id = id;
736     js.src = "https://connect.facebook.net/en_US/sdk.js";
737     fjs.parentNode.insertBefore(js, fjs);
738   }(document, 'script', 'facebook-jssdk'));
739</script>
739
740
741
742
743
744
745
746
747
748
749
750
751
752<script type='application/ld+json'>
753  {
754  "@context": "http://schema.org",
755   "@type": "PostalAddress",
756    "addressCountry": "Ireland",
757    "addressLocality": "Dublin 12",
758    "streetAddress": " Irish Farm Centre, Bluebell "
759  }
760</script>
760
761
762
763<script type='application/ld+json'>
764{
765  "@context": "http://schema.org",
766  "@type": "Organization",
767  "name" : "Irish Farmers Journal",
768  "url" : "https://www.farmersjournal.ie/",
769  "logo" : "https://s3-eu-west-1.amazonaws.com/ifj/images/header-logo.png"
770  }
771</script>
771
772
773
774
775
776
777
778<script type="application/ld+json">
779{
780  "@context": "http://schema.org",
781  "@type": "BreadcrumbList",
782  "itemListElement": [{
783    "@type": "ListItem",
784    "position": 1,
785    "item": {
786      "@id": "https://www.farmersjournal.ie/",
787      "name": "Home",
788      "image": "https://s3-eu-west-1.amazonaws.com/ifj/images/header-logo.png"
789    }
790  },{
791    "@type": "ListItem",
792    "position": 2,
793    "item": {
794      "@id": "https://www.farmersjournal.ie/farm/Pensions & Savings /430",
795      "name": "Pensions & Savings ",
796      "image": "https://s3-eu-west-1.amazonaws.com/ifj/images/header-logo.png"
797    }
798  },{
799    "@type": "ListItem",
800    "position": 3,
801    "item": {
802      "@id": "https://www.farmersjournal.ie//focus/pensions-and-savings-/tax-planning-is-about-efficiency-not-saving-930359",
803      "name": "Tax planning is about efficiency, not saving ",
804      "image": "https://www.farmersjournal.ie/WEBFILES/000/930/359/2602548-930359.jpg" 
805    }
806  }]
807}
808</script>
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837<!--script type="text/javascript">
838setTimeout(function(){var a=document.createElement("script");
839var b=document.getElementsByTagName("script")[0];
840a.src=document.location.protocol+"//dnn506yrbagrg.cloudfront.net/pages/scripts/0014/4660.js?"+Math.floor(new Date().getTime()/3600000);
841a.async=true;a.type="text/javascript";b.parentNode.insertBefore(a,b)}, 1);
842</script-->
843
844
845<script type="text/javascript">
846(function(w,d,s,r,k,h,m){
847  if(w.performance && w.performance.timing && w.performance.navigation) {
848    w[r] = w[r] || function(){(w[r].q = w[r].q || []).push(arguments)};
849    h=d.createElement('script');h.async=true;h.setAttribute('src',s+k);
850    d.getElementsByTagName('head')[0].appendChild(h);
851    (m = window.onerror),(window.onerror = function (b, c, d, f, g) {
852    m && m(b, c, d, f, g),g || (g = new Error(b)),(w[r].q = w[r].q || []).push(["captureException",g]);})
853  }
854})(window,document,'//static.site24x7rum.eu/beacon/site24x7rum-min.js?appKey=','s247r','6930e741d19493ed03fb98a324f901d4');
855</script>
855
856
857<script>
858  window.addEventListener('DOMContentLoaded', (event) => {
859      detect()
860  });
861
862  var exportss = {};
863  function getModeName(browserName) {
864    switch (browserName) {
865      case "Safari":
866      case "Firefox":
867      case "Brave":
868      case "Opera":
869        return "a Private Window";
870        break;
871/*
872      case "Safari for iOS":
873        return "a Private Tab";
874        break;
875*/
876      case "Chrome":
877      case "Chromium":
878        return "an Incognito Window";
879        break;
880      case "Internet Explorer":
881      case "Edge":
882        return "an InPrivate Window";
883        break;
884    }
885    throw new Error("Could not get mode name");
886  }
887  
888  function detect() {
889    //var a = document.getElementById("answer");
890    detectIncognito().then(function(result) {
891      if (result.isPrivate) {
892        //a.innerHTML = "<b>Yes</b>. You are using " + result.browserName + " in " + getModeName(result.browserName) + ".";
893        console.log("private mode test")
894        $("#modalRedeemCode").html( $("#incognito-redeem-modal").html() )
895      } else {
896        //a.innerHTML = "<b>No</b>. You are using " + result.browserName + " in a regular browser window.";
897      }
898    }).catch(function(error) {
899      //a.innerHTML = "There was an error. Check console for further information.";
900      console.log(error);
901    });
902  }
903</script>
903
904
905<script type="text/javascript"  src="https://www.farmersjournal.ie/js/detectIncognito.min.js"></script>
905
906
907
908<div id="incognito-redeem-modal" style="display: none">
909   <div class="modal-dialog">
910
911    <div class="modal-content" style="width: 80% !important;"> <!--  modal_article_footer -->
912
913      <!-- Modal Header -->
914      <div class="modal-header">
915          <button type="button" class="close" data-dismiss="modal">
916                 <span aria-hidden="true" class=""><img src="/images/modal_close_x.png"></span>
917                 <span class="sr-only">Close</span>
918          </button>
919      </div>
920
921
922
923
924                <div class="row">
925                    <div class="col-12">
926
927                        
928                        <p style="text-align: center; padding:10px" class="bigtitle padding-b-1"><img width="148px" src="/images/header-logo.png"></p>
929
930                        <p style="text-align: center; padding:10px" class="bigtitle padding-b-1">LOYALTY CODE:</p>
931
932
933
934
935                        <p style="text-align: center; padding:20px; margin-bottom: 50px;" class="smalltitle">                        
936                            The paper code cannot be redeemed when browsing in private/incognito mode. Please go to a normal browser window and enter the code there
937
938                        </p>
939
940
941
942                    </div>    
943
944               </div>   
945
946    </div>
947    </div>
948
949</div>
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966<script>
967window.googletag = window.googletag || {cmd: []};
968googletag.cmd.push(function () {
969
970
971  if (window.FJ_BLOCK_ADS) {
972    console.log("the are the blockeds on this page because (L1/advertiser-announcements).");
973    googletag.pubads().disableInitialLoad();
974    document.querySelectorAll(".gadvertisementheader").forEach(e => e.style.display = "none");
975    document.querySelectorAll(".leaderboard_2_ad").forEach(e => e.style.display = "none");
976
977
978
979    return;
980  }
981
982
983googletag.pubads().setPrivacySettings({ nonPersonalizedAds: true });
984
985// Keywords to check in the URL
986var url = window.location.href.toLowerCase();
987var targets = [];
988
989if (url.includes('northern-ireland')) targets.push('northern-ireland');
990if (url.includes('beef')) targets.push('beef');
991if (url.includes('sheep')) targets.push('sheep');
992if (url.includes('agribusiness')) targets.push('agribusiness');
993if (url.includes('machinery')) targets.push('machinery');
994if (url.includes('motors')) targets.push('motors');
995if (url.includes('buildings')) targets.push('buildings');
996if (url.includes('news/news')) targets.push('news/news');
997if (url.includes('farm-machinery')) targets.push('farm-machinery');
998if (url.includes('farm-safety')) targets.push('farm-safety');
999if (url.includes('pedigree')) targets.push('pedigree');
1000if (url.includes('forestry')) targets.push('forestry');
1001if (url.includes('property')) targets.push('property');
1002if (url.includes('hub/knowledge')) targets.push('hub/knowledge');
1003if (url.includes('tillage')) targets.push('tillage');
1004if (url.includes('livestock')) targets.push('livestock');
1005if (url.includes('renewables')) targets.push('renewables');
1006if (url.includes('schemes')) targets.push('schemes');
1007if (url.includes('ploughing')) targets.push('ploughing');
1008if (url.includes('dairy')) targets.push('dairy');
1009if (url.includes('comment')) targets.push('comment');
1010if (url.includes('careers')) targets.push('careers');
1011if (url.includes('life')) targets.push('life');
1012if (url.includes('food')) targets.push('food');
1013
1014if (targets.length) {
1015// Set all matched keywords as values for the key 'urlContains'
1016// If only one is found, it still works
1017googletag.pubads().setTargeting('PageURLContains', targets);
1018}
1019
1020googletag.defineSlot('/144848334/new2025-articlepage-deskmob-slot1-300x250', [300, 250], 'div-gpt-ad-1753366870041-0').addService(googletag.pubads());
1021googletag.defineSlot('/144848334/new2025-articlepage-deskmob-slot2-300x250', [300, 250], 'div-gpt-ad-1753366990195-0').addService(googletag.pubads());
1022googletag.defineSlot('/144848334/new2025-articlepage-deskmob-slot3-300x250', [300, 250], 'div-gpt-ad-1753367097616-0').addService(googletag.pubads());
1023googletag.defineSlot('/144848334/new2025-articlepage-desktop-bannerunderarticle-970x250', [970, 250], 'div-gpt-ad-1753367222147-0').addService(googletag.pubads());
1024googletag.defineSlot('/144848334/new2025-articlepage-desktop-stickysidebar-300x250', [300, 250], 'div-gpt-ad-1753367278366-0').addService(googletag.pubads());
1025googletag.defineSlot('/144848334/new2025-channelpage-deskmob-300x250', [300, 250], 'div-gpt-ad-1753367347568-0').addService(googletag.pubads());
1026googletag.defineSlot('/144848334/new2025-channelpage-desktop-banner-970x250', [970, 250], 'div-gpt-ad-1753367397484-0').addService(googletag.pubads());
1027googletag.defineSlot('/144848334/new2025-channelpage-mobile-300x250', [300, 250], 'div-gpt-ad-1753367438685-0').addService(googletag.pubads());
1028googletag.defineSlot('/144848334/new2025-channelpage-mobile-320x100', [320, 100], 'div-gpt-ad-1753367491118-0').addService(googletag.pubads());
1029googletag.defineSlot('/144848334/new2025-homepage-deskmob-hero-300x250', [300, 250], 'div-gpt-ad-1753367567726-0').addService(googletag.pubads());
1030googletag.defineSlot('/144848334/new2025-homepage-desktop-banner1-970x250', [970, 250], 'div-gpt-ad-1753367660893-0').addService(googletag.pubads());
1031googletag.defineSlot('/144848334/new2025-homepage-desktop-banner2-970x250', [970, 250], 'div-gpt-ad-1753367692897-0').addService(googletag.pubads());
1032googletag.defineSlot('/144848334/new2025-homepage-desktop-banner3-970x250', [970, 250], 'div-gpt-ad-1753367749304-0').addService(googletag.pubads());
1033googletag.defineSlot('/144848334/new2025-homepage-desktop-banner4-970x250', [970, 250], 'div-gpt-ad-1753367801423-0').addService(googletag.pubads());
1034googletag.defineSlot('/144848334/new2025-homepage-desktop-hpto-leftskyscraper-160x600', [160, 600], 'div-gpt-ad-1753367865701-0').addService(googletag.pubads());
1035googletag.defineSlot('/144848334/new2025-homepage-desktop-hpto-rightskyscraper-160x600', [160, 600], 'div-gpt-ad-1753367940784-0').addService(googletag.pubads());
1036googletag.defineSlot('/144848334/new2025-homepage-desktop-hpto-topbanner-970x250', [970, 250], 'div-gpt-ad-1753367981321-0').addService(googletag.pubads());
1037googletag.defineSlot('/144848334/new2025-homepage-mobile-slot1-300x250', [300, 250], 'div-gpt-ad-1753368025968-0').addService(googletag.pubads());
1038googletag.defineSlot('/144848334/new2025-homepage-mobile-slot2-300x250', [300, 250], 'div-gpt-ad-1753368090677-0').addService(googletag.pubads());
1039googletag.defineSlot('/144848334/new2025-homepage-mobile-slot3-320x100', [320, 100], 'div-gpt-ad-1753368123501-0').addService(googletag.pubads());
1040googletag.defineSlot('/144848334/new2025-homepage-mobile-slot4-320x100', [320, 100], 'div-gpt-ad-1753368178973-0').addService(googletag.pubads());
1041googletag.defineSlot('/144848334/new2025-mobilepopup-320x100', [320, 100], 'div-gpt-ad-1753368246457-0').addService(googletag.pubads());
1042
1043
1044googletag.defineSlot('/144848334/Video_Responsive_Homepage', [[640, 480]], 'div-gpt-ad-1768563847351-0').addService(googletag.pubads());
1045
1046
1047googletag.pubads().enableSingleRequest();
1048googletag.enableServices();
1049});
1050</script>
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080    
1080<script>
1081        $('document').ready(function(){
1082
1083            var ifem = Cookies.get('ifem');
1084            if (ifem != '') {
1085                var subtypedata = { email : ifem, device : "desktop", password : ""}
1086                $.ajax({
1087                    type: 'POST',
1088                    url: '/pagesuitescripts/NewAppValidate.php',
1089                    data: subtypedata,
1090                    dataType: "text",
1091                    success: function(resultData) { 
1092                        var obj = JSON.parse(resultData);
1093                        var subtypeid = obj['fjapp']['api'][0]['subtypeid'];
1094                        if(subtypeid == 2 || subtypeid == 10 || subtypeid == 9){
1095                            console.log('Debuggger');
1096                            /*var newHtml = '<div class="sub-menu-item"><a class="white" href="/myjournal">MY JOURNAL</a></div><div class="sub-menu-item"><a class="white" href="/archive.php">SEARCH<i class="fa fa-search margin-l-10" aria-hidden="true"></i></a></div>';*/
1097                            // $('div.top-sub-menu').remove();
1098                            /*$('div.top-sub-menu').html(newHtml);*/
1099                            
1100                            if(subtypeid == 2){
1101                                console.log("this user it is premium");
1102                                Cookies.set('type_user', 'premium', { expires: 365 });   
1103                                 localStorage.setItem('type_user', 'premium');                           
1104                            }else if(subtypeid == 2){
1105                                console.log("this user it is standard");
1106                                Cookies.set('type_user', 'standard', { expires: 365 });                              
1107                                 localStorage.setItem('type_user', 'standard');                                                           
1108                            } else if(subtypeid == 10){
1109                                console.log("this user it is standard");
1110                                Cookies.set('type_user', 'early', { expires: 365 });                              
1111                                 localStorage.setItem('type_user', 'early');                                                           
1112                            }
1113
1114
1115
1116                        }else{
1117                            console.log("this user it is free");
1118                            Cookies.set('type_user', 'free', { expires: 365 });  
1119                            localStorage.setItem('type_user', 'free');                                                       
1120
1121                        }
1122                    }
1123                });
1124            }
1125        });
1126
1127
1128           
1129
1130
1131
1132
1133
1134
1135    </script>
1135
1136
1137<script>
1138window.dataLayer = window.dataLayer || []; // add THIS please too in the first snippet
1139dataLayer.push({"membership" : "non-subscriber"});</script>
1139
1140
1141
1142
1143
1144
1145<script>
1146(function () {
1147  const PLAN_TYPES = [
1148    'digital_standard',
1149    'digital_premium',
1150    'print_standard',
1151    'print_premium'
1152  ];
1153
1154  let pollId = null;
1155  let pollStartedAt = 0;
1156
1157  function getCookie(name) {
1158    const value = `; ${document.cookie}`;
1159    const parts = value.split(`; ${name}=`);
1160    return parts.length === 2 ? parts.pop().split(';').shift() : null;
1161  }
1162
1163  function isPostLoginUrl() {
1164    const params = new URLSearchParams(window.location.search);
1165    return params.has('code') && params.has('state');
1166  }
1167
1168  function getAuthState() {
1169    const fpUserCookie = getCookie('fp.user');
1170
1171    if (!fpUserCookie) {
1172      return {
1173        authState: isPostLoginUrl() ? 'pending_login' : 'guest',
1174        userData: null,
1175        subsName: null
1176      };
1177    }
1178
1179    try {
1180      const userData = JSON.parse(fpUserCookie);
1181      const badge = String(userData.badge || '');
1182      const subsName = PLAN_TYPES.find(type => badge.includes(type)) || null;
1183      const isSubscriber = userData.subscriber === true;
1184
1185      if (!isSubscriber) {
1186        return {
1187          authState: 'logged_no_subscriber',
1188          userData,
1189          subsName
1190        };
1191      }
1192
1193      return {
1194        authState: subsName === 'digital_standard'
1195          ? 'subscriber_digital_standard'
1196          : 'subscriber_premium',
1197        userData,
1198        subsName
1199      };
1200
1201    } catch (e) {
1202      console.error('Error to parse fp.user', e);
1203
1204      return {
1205        authState: 'guest',
1206        userData: null,
1207        subsName: null
1208      };
1209    }
1210  }
1211
1212  function resetHeaderUi() {
1213    $(".ifj-myaccount-btn").addClass('hidden');
1214    $(".fp-sign-in").removeClass('hidden');
1215
1216    $(".ifj-subscribe-btn").addClass('hidden');
1217    $(".ifj-epaper-btn").addClass('hidden');
1218    $(".ifj-podcasts-btn").addClass('hidden');
1219
1220    $("#bof-graphic-overlay")
1221      .removeClass('-z-10')
1222      .addClass('z-50');
1223  }
1224
1225  function resolveAuth() {
1226    document.body.classList.add('auth-resolved');
1227
1228    if (pollId) {
1229      clearInterval(pollId);
1230      pollId = null;
1231    }
1232  }
1233
1234  function applyAuthState(authState) {
1235    resetHeaderUi();
1236
1237    switch (authState) {
1238      case 'subscriber_premium':
1239        $(".ifj-myaccount-btn").removeClass('hidden');
1240        $(".fp-sign-in").addClass('hidden');
1241
1242        $(".ifj-epaper-btn").removeClass('hidden');
1243        $(".ifj-podcasts-btn").removeClass('hidden');
1244
1245        $("#bof-graphic-overlay")
1246          .removeClass('z-50')
1247          .addClass('-z-10');
1248
1249        resolveAuth();
1250        break;
1251
1252      case 'subscriber_digital_standard':
1253        $(".ifj-myaccount-btn").removeClass('hidden');
1254        $(".fp-sign-in").addClass('hidden');
1255
1256        resolveAuth();
1257        break;
1258
1259      case 'logged_no_subscriber':
1260        $(".ifj-myaccount-btn").removeClass('hidden');
1261        $(".fp-sign-in").addClass('hidden');
1262
1263        $(".ifj-subscribe-btn")
1264          .removeClass('hidden')
1265          .removeClass('ifj-locked-invisible');
1266
1267        resolveAuth();
1268        break;
1269
1270      case 'guest':
1271        $(".ifj-subscribe-btn")
1272          .removeClass('hidden')
1273          .removeClass('ifj-locked-invisible');
1274
1275        $(".fp-sign-in").removeClass('hidden');
1276
1277        resolveAuth();
1278        break;
1279
1280      case 'pending_login':
1281        // Não aplica UI ainda.
1282        // O polling vai tentar de novo até o limite.
1283        break;
1284    }
1285  }
1286
1287  function refreshAuthState() {
1288    const result = getAuthState();
1289
1290    console.log(result);
1291
1292    applyAuthState(result.authState);
1293
1294    return result.authState;
1295  }
1296
1297  /*function startAuthPolling() {
1298    const maxWaitMs = isPostLoginUrl() ? 6000 : 1200;
1299    const intervalMs = 150;
1300
1301    pollStartedAt = Date.now();
1302
1303    if (pollId) {
1304      clearInterval(pollId);
1305    }
1306
1307    pollId = setInterval(function () {
1308      const authState = refreshAuthState();
1309
1310      if (authState !== 'pending_login') {
1311        return;
1312      }
1313
1314      if (Date.now() - pollStartedAt >= maxWaitMs) {
1315        clearInterval(pollId);
1316        pollId = null;
1317
1318        applyAuthState('guest');
1319      }
1320    }, intervalMs);
1321  }*/
1322
1323  document.addEventListener('DOMContentLoaded', function () {
1324    refreshAuthState();
1325
1326    if (!document.body.classList.contains('auth-resolved')) {
1327      startAuthPolling();
1328    }
1329  });
1330
1331  window.addEventListener('focus', refreshAuthState);
1332  window.addEventListener('pageshow', refreshAuthState);
1333
1334  document.addEventListener('visibilitychange', function () {
1335    if (!document.hidden) {
1336      refreshAuthState();
1337    }
1338  });
1339
1340  // Fallback final
1341  setTimeout(function () {
1342    if (!document.body.classList.contains('auth-resolved')) {
1343      applyAuthState('guest');
1344    }
1345  }, 10000);
1346
1347})();
1348</script>
1348
1349
1350
1351
1352
1353<!-- a social media scheduling tool | asked by Patrick 08-04-2026 -->
1354<script async id="ebx" src="//applets.ebxcdn.com/ebx.js"></script>
1354
1355
1356<!-- https://trello.com/c/Kf93TGyG/1034-tracking-code-on-ifj -->
1357<script src="//static.trueanthem.com/scripts/ta.js"></script>
1357
1358
1359
1360    <title>Tax planning is about efficiency, not saving  -  Premium</title>	
1360<script type="application/ld+json">
1361{
1362        "@context": "http://schema.org",
1363        "@type": "NewsArticle",
1364        "headline": "Tax planning is about efficiency, not saving ",
1365        "isAccessibleForFree": false,
1366		"hasPart": {
1367		    "@type": "WebPageElement",
1368		    "isAccessibleForFree": false,
1369		    "cssSelector": ".ifj-paywalled-content"
1370		},
1371        "isPartOf": {
1372                "@type": ["CreativeWork", "Product"],
1373                "name": "Irish Farmers Journal",
1374                "productID": "farmersjournal.ie:showcase"
1375        },
1376        "publisher": {
1377                "@type": "Organization",
1378                "name": "Irish Farmers Journal"
1379        },
1380
1381		"author": {
1382          "@type": "Person",
1383          "name": "Lorcan Roche Kelly",
1384          "url": "/journalists/"        
1385      	},
1386
1387
1388		"image": {
1389		    "@type": "ImageObject",
1390		    "url": "https://d3mdtxxgfz6upn.cloudfront.net/images/header-logo.png"
1391		}
1392}
1393</script>
1393
1394
1395	
1395<script src="https://news.google.com/swg/js/v1/swg-gaa.js"></script>
1395
1396	
1396<script subscriptions-control="manual" src="https://news.google.com/swg/js/v1/swg.js"></script>
1396
1397	<!--
1397<script src="https://accounts.google.com/gsi/client" defer></script>
1397-->
1398	
1399	
1399<script src="https://accounts.google.com/gsi/client"></script>
1399
1400	
1400<script>
1401
1402		function setCookie(cname, cvalue, exdays) {
1403	      var d = new Date();
1404	      d.setTime(d.getTime() + (exdays*24*60*60*1000));
1405	      var expires = "expires="+ d.toUTCString();
1406	      document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
1407	    }
1408	    //setCookie("selectmart", selectmart, 180);
1409	    function getCookie(name) {
1410	      var cookieArr = document.cookie.split(";");
1411	      for(var i = 0; i < cookieArr.length; i++) {
1412	          var cookiePair = cookieArr[i].split("=");
1413	          if(name == cookiePair[0].trim()) {
1414	              return decodeURIComponent(cookiePair[1]);
1415	          }
1416	      }
1417	      return null;
1418	    }
1419	</script>
1419	
1420
1421				
1422
1423
1424    <meta charset="utf-8">
1425    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
1426    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
1427   <!-- <meta http-equiv="Cache-Control" content="no-cache"> -->
1428   <!-- <meta http-equiv="Cache-Control" content="max-age=120">-->
1429   
1430
1431
1432
1433    <meta name="apple-mobile-web-app-capable" content="yes">
1434    <meta name="mobile-web-app-capable" content="yes">
1435    <meta name="apple-itunes-app" content="app-id=455979888">
1436    <meta name="google-play-app" content="app-id=iguide.com.farmersjournalapp">
1437
1438
1439
1440
1441
1442	<meta name="robots" content="index, follow">
1443	<meta name="apple-itunes-app" content="app-id=963726555, affiliate-data=myAffiliateData, app-argument=myURL">
1444
1445	
1446		<link rel="canonical" href="https://www.farmersjournal.ie/focus/pensions-and-savings-/tax-planning-is-about-efficiency-not-saving-930359" />
1447	
1448
1449	
1450	
1451
1452
1453
1454
1455	<link rel="amphtml" href="https://www.farmersjournal.ie/amp/focus/pensions-and-savings-/tax-planning-is-about-efficiency-not-saving-930359" />
1456    <meta name="keywords" content="Focus,Pensions & Savings ,Management,Tax,Lorcan Roche Kelly" /><meta name="news_keywords" content="Focus,Pensions & Savings ,Management,Tax,Lorcan Roche Kelly" /><meta name="description" content="Tax planning is about efficiency, not saving  - 05 September 2026" />	
1457
1458    <!--OG META-->
1459    <!--meta property="fb:app_id" content="1565788517026862" />
1460	<meta property="fb:admins" content="100006250305723"/-->
1461	<meta property="og:url" content="https://www.farmersjournal.ie/focus/pensions-and-savings-/tax-planning-is-about-efficiency-not-saving-930359"/>
1462	<meta property="og:image" content="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/930/359/2602548-930359.jpg" />
1463	<meta property="og:image:width" content="1200" />
1464	<meta property="og:image:height" content="630" />
1465	<meta property="og:title" content="Tax planning is about efficiency, not saving " />
1466	<meta property="og:type" content="article" />
1467	<meta property="og:description" content="While there are plenty of ways to reduce a tax bill, spending should always make good financial sense." />
1468	<meta property="og:category" content="Focus" />
1469	<meta itemprop="datePublished" content="2026-09-02"/>
1470
1471	<!--TWITTER CARD META-->
1472	<meta name="twitter:card" content="photo" />
1473	<meta name="twitter:site" content="@farmersjournal" />
1474	<meta name="twitter:site:id" content="133241378" />
1475	<meta name="twitter:creator" content="Lorcan Roche Kelly" />
1476	<meta name="twitter:title" content="Tax planning is about efficiency, not saving " />
1477	<meta name="twitter:description" content="While there are plenty of ways to reduce a tax bill, spending should always make good financial sense." />
1478	<meta name="twitter:image" content="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/930/359/2602548-930359.jpg" />
1479	<meta name="twitter:url" content="https://www.farmersjournal.ie/focus/pensions-and-savings-/tax-planning-is-about-efficiency-not-saving-930359"/>
1480
1481	<!-- swiftype.com  -->
1482	<meta class="swiftype" name="date_published" data-type="date" content="2026-09-02" />
1483	<meta class="swiftype" name="release_date" data-type="date" content="2026-09-05" />
1484	<meta class="swiftype" name="release_date_time" data-type="date" content="2026-09-05 08:30:00" />
1485	<meta class="swiftype" name="published_at" data-type="date" content="2026-09-05" />
1486			<meta class="swiftype" name="title" data-type="string" content="Tax planning is about efficiency, not saving  05 September 2026 Premium" />					
1487	    <meta class="swiftype" name="info" data-type="string" content="Lorcan Roche Kelly" />
1488
1489
1490
1491		
1492<script>
1493window.dataLayer = window.dataLayer || []; // add THIS please too in the first snippet
1494
1495	window.dataLayer.push({
1496        'contentgroup1':"0",//memberplus 1 or 0
1497        'contentgroup2':"Lorcan Roche Kelly",
1498        'contentgroup3':"Focus > Pensions & Savings ",
1499        'ecommerce': {
1500        'impressions': [
1501        		  {
1502            	   'name': "Beef management: closing paddocks nutrient application and ration composition ",
1503			   	   'id': "933895",
1504    			   'category': "Beef > Management",
1505    			   'list': 'Related Articles',
1506    			   'position': 1
1507    			 },
1508				 {
1509            	   'name': "Dairy Management: wintering options fertiliser and slurry deadlines",
1510			   	   'id': "933489",
1511    			   'category': "Dairy > Management",
1512    			   'list': 'Related Articles',
1513    			   'position': 2
1514    			 },
1515				 {
1516            	   'name': "MEPs reject emergency brake for EU carbon tax on fertiliser imports",
1517			   	   'id': "933148",
1518    			   'category': "News > News",
1519    			   'list': 'Related Articles',
1520    			   'position': 3
1521    			 }
1522                 				]
1523    		  }
1524    
1525    	});
1526	
1527
1528
1529
1530    function sendToAnalytics(event){
1531    	console.log("sendToAnalytics event 1=" + JSON.stringify(event));
1532    	var eventjsonparameter = JSON.stringify(event);
1533    	var eventgid = event.eventType;//event[eventType]
1534    	var eventgname ='';
1535    	var eventdesc ='';
1536    	//var eventgname = 'EVENT_TESTING_A';//lookup based on code from https://github.com/subscriptions-project/swg-js/blob/main/src/proto/api_messages.js#L32
1537    	switch (eventgid) {
1538		  case 22:
1539		    eventgname = "IMPRESSION_REGWALL";
1540		    eventdesc = "Publisher provides an anonymous userState object with no access and the user sees the Google registration prompt / The user doesn't have any entitlements or meters available from the publisher, and sees a publisher regwall";
1541		    break;
1542		 case 23:
1543		    eventgname = "IMPRESSION_SHOWCASE_REGWALL";
1544		    eventdesc = "Get more with google prompt shown.";
1545		    break;
1546		  case 1060:
1547		    eventgname = "ACTION_SHOWCASE_REGWALL_SIWG_CLICK";
1548		    eventdesc = "User clicks the Sign in with Google button.";
1549		    break;
1550		  case 1035:
1551		    eventgname = "ACTION_SHOWCASE_REGWALL_GSI_CLICK";
1552		    eventdesc = "User clicks the Sign in with Google button.Deprecated";
1553		    break;
1554		  case 1036:
1555		    eventgname = "ACTION_SHOWCASE_REGWALL_EXISTING_ACCOUNT_CLICK";
1556		    eventdesc = "User clicks the Already registered? Sign in. link.";
1557		    break;
1558		  case 1024:
1559		    eventgname = "ACTION_GET_ENTITLEMENTS";
1560		    eventdesc = "Extended Access library checks for Google entitlements.";
1561		    break;
1562		  case 3011:
1563		    eventgname = "EVENT_OFFERED_METER";
1564		    eventdesc = "Entitlements returns a response with a valid google:metering entitlement.";
1565		    break;
1566		  case 21:
1567		    eventgname = "IMPRESSION_METER_TOAST";
1568		    eventdesc = "Extended Access library consumes Google entitlement to unlock content and the user sees the Extended Access prompt.";
1569		    break;
1570		  case 3008:
1571		    eventgname = "EVENT_UNLOCKED_BY_METER";
1572		    eventdesc = "Your getting more wth google prompt shown.";
1573		    break;
1574		  case 1025:
1575		    eventgname = "ACTION_METER_TOAST_SUBSCRIBE_CLICK";
1576		    eventdesc = "The user clicks on the Subscribe call-to-action in the Extended Access prompt.";
1577		    break;
1578		  case 3007:
1579		    eventgname = "EVENT_UNLOCKED_BY_SUSCRIPTION";
1580		    eventdesc = "The user previously purchased a subscription.";
1581		    break;
1582		  case 3008:
1583		    eventgname = "EVENT_UNLOCKED_BY_METER";
1584		    eventdesc = "The page uses a metered read from the publisher.";
1585		    break;
1586		  case 3012:
1587		    eventgname = "EVENT_UNLOCKED_FREE_PAGE";
1588		    eventdesc = "The content isn't paywalled, and the pages doesn't require an entitlement.";
1589		    break;
1590		  case 3009:
1591		    eventgname = "EVENT_NO_ENTITLEMENTS";
1592		    eventdesc = "The user doesn't have any entitlements or meters available from the publisher, and sees a publisher regwall / Or Paywall";
1593		    break;
1594		  case 1:
1595		    eventgname = "IMPRESSION_PAYWALL";
1596		    eventdesc = "Publisher Entitlement: EVENT_SHOWCASE_NO_ENTITLEMENTS_PAYWALL";
1597		    break;
1598		  default:
1599    		eventgname = "";
1600		    eventdesc = "";
1601		}
1602
1603		if(eventgname!='' && eventdesc!=''){
1604			// HUBSPOT TRACKING 'true' tracks this event on every page view
1605				if (true) {
1606				_hsq.push([
1607				  'trackCustomBehavioralEvent',
1608				  {
1609				    name: "pe24904274_ifj_showcase_analytics",
1610				    properties: {
1611				      // give each property a value so we know what they mean
1612				      eventjson: eventjsonparameter,
1613				      eventgid: eventgid,
1614				      eventgname: eventgname,
1615				      eventdesc: eventdesc,
1616				      storyid: '930359',
1617				      article_title: 'Tax planning is about efficiency not saving '
1618				    },
1619				  },
1620				]);
1621				}
1622			//end of hubspot tracking here
1623		}
1624    }
1625</script>
1625
1626
1627
1628        
1629    
1630	<!--
1630<script type="text/javascript">
1631		var googletag = googletag || {};
1632		googletag.cmd = googletag.cmd || [];
1633		(function() {
1634			var gads = document.createElement("script");
1635			gads.async = true;
1636			gads.type = "text/javascript";
1637			var useSSL = "https:" == document.location.protocol;
1638			gads.src = (useSSL ? "https:" : "http:") + "//www.googletagservices.com/tag/js/gpt.js";
1639			var node =document.getElementsByTagName("script")[0];
1640			node.parentNode.insertBefore(gads, node);
1641		})();
1642	</script>
1642-->
1643 
1644 
1645 
1646	
1646<script type='text/javascript'>
1647
1648  window.googletag = window.googletag || {cmd: []};
1649
1650	googletag.cmd.push(function() {
1651		googletag.defineSlot('/144848334/01_ifj_desktop_Focus_article_728x90_01', [728, 90], 'div-gpt-ad-1610041129928-0').addService(googletag.pubads());
1652googletag.defineSlot('/144848334/01_ifj_desktop_Focus_article_728x90_02', [728, 90], 'div-gpt-ad-1610041181002-0').addService(googletag.pubads());
1653googletag.defineSlot('/144848334/01_ifj_desktop_Focus_article_300x250_01', [300, 250], 'div-gpt-ad-1610040887698-0').addService(googletag.pubads());
1654googletag.defineSlot('/144848334/01_ifj_desktop_Focus_article_300x250_02', [300, 250], 'div-gpt-ad-1610040953818-0').addService(googletag.pubads());
1655googletag.defineSlot('/144848334/01_ifj_desktop_Focus_article_300x250_03', [300, 250], 'div-gpt-ad-1610041006194-0').addService(googletag.pubads());
1656		googletag.enableServices();
1657	});
1658	</script>
1658
1659
1660
1661	
1661<script type="text/javascript">		
1662		googletag.cmd.push(function() {
1663			var pathname = window.parent.location.pathname;
1664			var pathnameArraySplit = pathname.split("-");
1665			var StoryID = [...pathnameArraySplit].pop();
1666			googletag.pubads().setTargeting('StoryID', StoryID).setTargeting('Test', ['refresh']);
1667	 });
1668	</script>
1668
1669
1670
1671
1672
1673
1674
1675
1676<style>
1677
1678	/*.gadvertinlinestyling{
1679		clear:both;
1680		display: block;
1681		width:100%;
1682		padding:10px;
1683		background-color:#f6f6f6;
1684		margin-top: 20px;
1685		margin-bottom: 20px;
1686	}
1687
1688	.gadvertisementheader{
1689		color: #999999;
1690		background-color:#f6f6f6;
1691		display: block;
1692		clear: both;
1693  		text-align: center;
1694  		font-size: 11px;
1695	}
1696
1697
1698	.gadvertinlinestyling div{
1699		margin: 0 auto;
1700		display: flex;
1701	  	align-items: center;
1702	  	vertical-align: middle;
1703	  	background-color:#f6f6f6;
1704	}*/
1705
1706	.share-btn-v2{
1707		cursor: pointer;
1708	}
1709
1710
1711	.article-body-gradient:after{
1712	    content: "";
1713	    width: 100%;
1714	    height: 300px; /* 100%*/
1715	    position: absolute;
1716	    z-index: 0;
1717	    bottom: 0;
1718	    left: 0;
1719	    background-color: rgba(255, 255, 255, 0);
1720	    background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 35%, white 76%);
1721	    background-image: linear-gradient(to bottom,rgba(255, 255, 255, 0) 35%, white 104%);
1722	}
1723
1724	.carousel-inner .item.image {
1725		display: none;
1726	}
1727
1728
1729
1730</style>
1731
1732
1733
1734
1735
1736
1737
1738<!--DEVICES BASED --------------------------------------------------->
1739<script>
1740
1741	/*function hideStory(){
1742		const first_paragraph = $('.article-body').find("p:first").html()
1743		const second_paragraph = $('.article-body').find("p:eq(1)").html()
1744		const first_and_second_p = `${first_paragraph}${second_paragraph}`
1745		$('.article-body').html(first_and_second_p)
1746		$('.article-body').addClass('article-body-gradient')		
1747		$('body').removeClass('modal-open')
1748		$('#incognitoModal').removeAttr('data-backdrop')
1749	};*/
1750function hideStory() {
1751	
1752    const articleBody = document.querySelector('.article-body');
1753    const paragraphs = articleBody.querySelectorAll('p');
1754    
1755    if (paragraphs.length > 1) {
1756        const firstParagraph = paragraphs[0].innerHTML;
1757        const secondParagraph = paragraphs[1].innerHTML;
1758        const firstAndSecondP = `${firstParagraph}${secondParagraph}`;
1759        
1760        articleBody.innerHTML = firstAndSecondP;
1761        //articleBody.classList.add('article-body-gradient');
1762        articleBody.classList.add('bg-white');
1763        articleBody.classList.add('[mask-image:linear-gradient(to_bottom,black,transparent)]');
1764    }
1765
1766    document.body.classList.remove('modal-open');
1767    
1768    /*const incognitoModal = document.getElementById('incognitoModal');
1769    if (incognitoModal) {
1770        incognitoModal.removeAttribute('data-backdrop');
1771    }*/
1772}
1773
1774
1775
1776
1777
1778
1779
1780  // Initialize the agent on page load.
1781  const fpPromise = import('https://fp.farmersjournal.ie/web/v3/Az9S6tYvNUCLhnQRtpWA')
1782    .then(FingerprintJS => FingerprintJS.load({
1783      endpoint: [
1784        "https://fp.farmersjournal.ie",
1785        FingerprintJS.defaultEndpoint
1786      ],
1787      region: "eu"
1788    }))
1789
1790  // Get the visitorId when you need it.
1791  fpPromise
1792    .then(fp => fp.get({ extendedResult: true }))
1793    .then(result => {
1794      
1795      const visitorId = result.visitorId;
1796      console.log(visitorId);
1797      console.log(result);
1798      console.log("result=" + JSON.stringify(result));
1799      console.log("device=" + result.device);
1800      console.log("os=" + result.os);
1801      console.log("version=" + result.osVersion);
1802      console.log("var_device_name=" + result.device);
1803      console.log("var_device_pointing_method=" + result.device);
1804      console.log("incognito=" + result.incognito);
1805      console.log("browserName=" + result.browserName);
1806      console.log("browserVersion=" + result.browserVersion);
1807
1808
1809	  var windowheight = screen.height;
1810	  var windowwidth = screen.width;
1811
1812
1813
1814    })
1815    //end of the fingerprint JS
1816
1817
1818
1819
1820
1821
1822</script>
1822
1823<!--DEVICES BASED --------------------------------------------------->
1824
1825
1826<style type="text/css">
1827	.article-body {
1828		display: none; /* just to dont show the entire story before proccess the incognito logic *
1829	}
1830</style>
1831		  	
1832
1833
1834
1835</head>
1836
1837
1838
1839
1840<body>
1841
1842
1843
1844
1845
1846
1847
1848<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 1848-1849
1848
1849<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1849GTM-W2FCP4H
vendor: 83 bytes, lines 1849-1850
1849"
1850height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1851<!-- End Google Tag Manager (noscript) -->
1852
1853<!--<div class="container">-->
1854
1855    	
1856
1857
1858
1859                <header>
1860	            
1861
1862
1863    
1864        <!-- Desktop Header -->
1865        <div id="header" class="hidden lg:block my-main-bg-color text-white">
1866            <div class="columns-3 container mx-auto max-w-screen-xl flex justify-between items-center px-4 h-[100px] ">
1867
1868                <div class="w-full flex justify-start items-center ml-4">
1869                    <i id="hamburger-btn" class="material-icons text-4xl my-zoom-1-2 pr-5 cursor-pointer">menu</i>
1870                    <i id="header-search-icon" class="material-icons text-4xl cursor-pointer">search</i>
1871                </div>
1872
1873                <div class="w-full flex justify-center">
1874                    <a href="/">
1875                        <img src="https://d3mdtxxgfz6upn.cloudfront.net/images/header-logo.png" alt="Farmers Journal Logo" class="h-[71.18px]">
1876                    </a>
1877                </div>
1878                                
1879                <div class="w-full flex justify-end mr-4 white">
1880                    
1881
1882
1883
1884<span>
1885    <!--<li>
1886      <a class="fp-sign-in cursor-pointer inline-flex items-center rounded-md border border-gray-300 px-3 py-1.5 text-sm font-medium text-gray-700 hover:bg-gray-100 transition" style="display: none;">
1887        Sign In
1888      </a>
1889    </li>-->
1890
1891
1892
1893
1894
1895        <span class="flex items-center">
1896
1897            <!-- not logged --> 
1898            <a href="/subscribe.php" class="ifj-subscribe-btn hidden ifj-locked-invisible">
1899                <button class="bg-teal-500 text-white ml-2 h-[26px] w-[100px] my-font-14-px my-font-roboto-bold">SUBSCRIBE</button>
1900            </a>
1901
1902            <a href="#" class="fp-sign-in hidden">
1903                <i class="material-icons text-4xl pl-5 cursor-pointer">person</i>
1904            </a>
1905
1906            <a href="#" class="fp-sign-in hidden">
1907                <span id="sign-in-text" class="my-font-roboto-bold my-font-14-px cursor-pointer">SIGN IN</span>
1908            </a>
1909
1910
1911
1912          <!-- not logged --> 
1913          <!--<a class="fp-sign-out cursor-pointer inline-flex items-center rounded-md border border-gray-300 px-3 py-1.5 text-sm font-medium text-gray-700 hover:bg-gray-100 transition" style="display: none;">
1914            Sign Out
1915          </a>-->
1916          <!--<span class="fp-sign-out my-font-roboto-bold my-font-14-px cursor-pointer">SIGN OUT</span>-->
1917        
1918    
1919          <!--<a class="fp-member-center cursor-pointer inline-flex items-center rounded-md bg-black px-3 py-1.5 text-sm font-medium text-white hover:bg-gray-800 transition" style="display: none;">
1920            Account
1921          </a>-->
1922        <!--<a class="ifj-myaccount-btn fp-member-center bg-gray-600 text-white h-[26px] w-[100px] my-font-14-px my-font-roboto-bold hidden">
1923          MY ACCOUNT
1924        </a>-->
1925
1926
1927
1928          <a href="/my-podcasts" rel="noopener noreferrer" class="float-left hidden ifj-podcasts-btn">
1929            <div class="flex items-center gap-2 text-white mr-0 md:mr-5 -mt-px float-left">
1930              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="w-11 h-11">
1931                <path stroke-linecap="round" stroke-linejoin="round" d="M4 12a8 8 0 0116 0"></path>
1932                <rect x="4" y="12" width="4" height="7" rx="1.2"></rect>
1933                <rect x="16" y="12" width="4" height="7" rx="1.2"></rect>
1934              </svg>
1935              <span class="-ml-2 hidden lg:inline">Podcasts</span>
1936            </div>
1937          </a>
1938
1939
1940            <span class="block ifj-epaper-btn hidden">
1941                <a href="https://edition.pagesuite.com/html5/reader/production/default.aspx?pubname=&pubid=76379fd5-fa8e-44c4-a34a-7784b5dcb297" target="_blank" title="Irish Farmers Journal ePaper" class="flex items-center justify-end lg:justify-center">
1942                  <img src="/2024-files/epaper-icon.png" class="h-[35px] epaper-icon" alt="">
1943                  <span class="hidden lg:inline ml-0">Epaper</span>
1944                </a>
1945            </span>
1946
1947
1948
1949        </span>
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967                       <!-- <header-desktop-logged-buttons></header-desktop-logged-buttons> -->
1968
1969                               
1970
1971    
1972</span>      
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986                        <!--<header-desktop-logged-buttons></header-desktop-logged-buttons>-->
1987
1988
1989                </div>
1990            </div>
1991        </div>
1992        <!-- Mobile Header -->
1993        <div id="header-mobile" class="lg:hidden my-main-bg-color text-white flex items-center justify-between p-4">
1994            
1995
1996
1997            <span class="w-[80px]">
1998                        <button id="mobile-hamburger-btn" class="focus:outline-none">
1999                            <svg class="h-8 w-8" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2000                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path>
2001                            </svg>
2002                        </button>
2003            </span>            
2004
2005
2006            <a href="/">
2007                <img src="https://d3mdtxxgfz6upn.cloudfront.net/images/header-logo.png" alt="Logo" class="h-10 mx-auto">
2008            </a>
2009
2010
2011
2012          <span class="flex items-center">
2013
2014<span class="header-mobile-auth-buttons flex items-center gap-3">
2015                <a href="/my-podcasts" rel="noopener noreferrer" class="hidden ifj-podcasts-btn">
2016                  <div class="flex items-center text-white">
2017                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="w-9 h-9">
2018                      <path stroke-linecap="round" stroke-linejoin="round" d="M4 12a8 8 0 0116 0"></path>
2019                      <rect x="4" y="12" width="4" height="7" rx="1.2"></rect>
2020                      <rect x="16" y="12" width="4" height="7" rx="1.2"></rect>
2021                    </svg>
2022                    <span class="-ml-2 hidden lg:inline">Podcasts</span>
2023                  </div>
2024                </a>
2025
2026
2027
2028                  <span class="ifj-epaper-btn hidden">
2029                      <a href="https://edition.pagesuite.com/html5/reader/production/default.aspx?pubname=&amp;pubid=76379fd5-fa8e-44c4-a34a-7784b5dcb297" title="Irish Farmers Journal ePaper" class="flex items-center">
2030                        <img src="/2024-files/epaper-icon.png" class="h-[30px] epaper-icon" alt="">
2031                        <span class="hidden lg:inline ml-0">Epaper</span>
2032                      </a>
2033                  </span>
2034
2035
2036
2037                    <button class="fp-sign-in focus:outline-none hidden">
2038                    <a>
2039                      <i class="material-icons text-4xl cursor-pointer">person</i>
2040                    </a>              
2041                    </button>
2042
2043</span>
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066                    <!-- <header-desktop-logged-buttons></header-desktop-logged-buttons> -->
2067
2068
2069
2070
2071                     <!-- <a class="fp-sign-out" href="/logout.php">
2072                      <span class="my-font-roboto-bold my-font-14-px cursor-pointer text-white">SIGN OUT</span>
2073                      </a>
2074
2075
2076                     <a class="fp-member-center">
2077                      <button class="bg-gray-600 text-white h-[26px] w-[100px] my-font-14-px my-font-roboto-bold">
2078                        MY ACCOUNT
2079                      </button>
2080                      </a>-->
2081          </span>
2082
2083        </div>
2084            	
2085        </header>
2086
2087        
2088        
2089
2090
2091
2092
2093
2094
2095
2096
2097    <div id="header-search-field-container" class="hidden w-full my-main-bg-color">
2098
2099        <div class="flex items-center justify-center h-[100px]">
2100                    <!--<form action="/archive.php" method="get">-->
2101                    <form action="/2024-search.php" method="get">
2102                    <div class="flex items-center  rounded">
2103                    <input id="search-input-desktop-header" type="search" name="stq" placeholder="Search for stories, topics" class="px-4 py-2 w-96 focus:outline-none rounded-bl-md">
2104                    <button class="ml-2 bg-gray-800 flex items-center px-4 py-2 my-text-color-gray-1 text-white  hover:bg-gray-800 focus:outline-none rounded">
2105                        <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2" viewBox="0 0 20 20" fill="currentColor">
2106                            <path fill-rule="evenodd" d="M12.9 14.32a8 8 0 111.42-1.42l4.5 4.5a1 1 0 01-1.42 1.42l-4.5-4.5zM8 14a6 6 0 100-12 6 6 0 000 12z" clip-rule="evenodd"></path>
2107                        </svg>
2108                        Search
2109                    </button>
2110                    <i id="close-search-icon" class="material-icons text-4xl my-zoom-1-2 pr-5 cursor-pointer text-white">close</i>
2111                    </div>
2112                    </form>
2113        </div>    
2114
2115    </div>
2116
2117    <nav id="header-menu" class="bg-white border-b border-gray-200 hidden md:flex text-sm">
2118        <div class="container mx-auto max-w-screen-xl h-[35px] flex items-center my-text-color-gray-1 my-font-roboto-medium">
2119            <i id="hamburger-btn-desktop-scroll-down" class="material-icons text-2xl my-zoom-1-2 pr-2 cursor-pointer show-desktop-scrolldown hidden">menu</i>
2120
2121            <a href="/">
2122                <i id="header-search-icon-desktop-scroll-down" class="material-icons text-2xl cursor-pointer show-desktop-scrolldown hidden" 
2123                onclick="event.stopImmediatePropagation();">home</i>
2124            </a>
2125
2126            <a class="my-ml-20px desktop-headermenu-beef my-mr-20px" href="/farming-news/beef/54">BEEF</a>
2127            <a class="my-mr-20px desktop-headermenu-dairy" href="/farming-news/dairy/55">DAIRY</a>
2128            <a class="my-mr-20px desktop-headermenu-sheep" href="/farming-news/sheep/56">SHEEP</a>
2129            <a class="my-mr-20px desktop-headermenu-machinery" href="/farming-news/machinery/59">
2129MACHINERY</a>
2130            <a class="my-mr-20px desktop-headermenu-tillage" href="/farm/tillage/57">TILLAGE</a>
2131            <a class="my-mr-20px desktop-headermenu-agribusiness" href="/farming-news/agribusiness-news/58">AGRIBUSINESS</a>
2132            <a class="my-mr-20px desktop-headermenu-farm-schemes" href="/tag/Farm-schemes">FARM SCHEMES</a>
2133            <a class="my-mr-20px desktop-headermenu-property" href="/farm/property/76">PROPERTY</a>
2134            <a class="my-mr-20px desktop-headermenu-buildings" href="/farm/buildings/315">BUILDINGS</a>
2135            <a class="my-mr-20px desktop-headermenu-pedigree" href="/farm/pedigree/320">PEDIGREE</a>
2136            <a class="my-mr-20px desktop-headermenu-northern-ireland" href="/farming-news/northern-ireland/321">NORTHERN IRELAND</a>
2137            <a class="my-mr-20px desktop-headermenu-country-living" href="/farming-news/irish-country-living/3">COUNTRY LIVING</a>  
2138
2139            <span>
2140                     <!-- not logged -->
2141                        <header-desktop-not-logged-buttons class="my-zoom-0-8 show-desktop-scrolldown hidden"></header-desktop-not-logged-buttons>
2142                                </span>
2143            
2144        </div>
2145    </nav>
2146
2147
2148        <!-- Menu Lateral -->
2149    <div id="sidebar" class="fixed left-0 top-0 w-full md:w-72 shadow-lg z-50 h-screen hidden my-overflow-y-overlay my-scrollbar-hidden sidebar-desktop-top-100-px">
2150        <div class="my-custom-bg-gray p-4">
2151        
2152
2153
2154
2155
2156
2157
2158    <style>
2159
2160            ._footer-category {
2161                position: relative;
2162                padding: 20px 0;
2163                /*border-bottom: 1px solid #ccc;*/
2164                border-top: 1px solid #ccc;
2165                cursor: pointer;
2166            }
2167            ._footer-category.active {
2168                /*border-bottom: none; */ 
2169                padding-bottom: 10px;
2170            }
2171            ._footer-category::after {
2172                content: '\25BC'; /* Seta para baixo */
2173                position: absolute;
2174                right: 0;
2175                top: 50%;
2176                transform: translateY(-50%);
2177                font-size: 0.575rem;
2178                color: #fff;
2179            }
2180            ._footer-category.active::after {
2181                content: '\25B2'; /* Seta para cima */
2182            }
2183            ._footer-dropdown {
2184                display: none;
2185            }
2186            ._footer-dropdown.active {
2187                display: block;
2188            }
2189            ._access-channel {
2190                color: #fff; /* Cor branca para o item "Access this channel" */
2191            }
2192
2193            /* Itens menores no mobile */
2194            ._footer-small-links {
2195                display: grid;
2196                grid-template-columns: 1fr 1fr;
2197                grid-column-gap: 20px; /* Espaço entre as colunas */
2198                grid-row-gap: 10px; /* Espaço entre as linhas */
2199                padding-top: 20px;
2200                margin: 0 auto; /* Centralizar o conteúdo */
2201                max-width: 320px; /* Limitar a largura para centralizar */
2202            }
2203            ._footer-small-links a {
2204                text-align: left;
2205                color: #ccc; /* Cor cinza claro */
2206                font-size: 12px;
2207            }
2208            ._footer-small-links ._footer-last-item {
2209                grid-column: 1 / -1; /* Ocupa toda a largura */
2210                text-align: center;
2211                padding-top: 10px;
2212            }
2213        
2214
2215            .sidebar-desktop-top-100-px {
2216                top: 100px;
2217            }
2218            .sidebar-desktop-top-50-px {
2219                top: 50px;
2220            }
2221
2222
2223            /* mobile */
2224            @media (max-width: 767px) {
2225                .sidebar-desktop-top-50-px {
2226                    top: 0px;
2227                } 
2228
2229                .sidebar-desktop-top-100-px {
2230                    top: 72px !important;
2231                }
2232
2233
2234            }
2235
2236            /* desktop */
2237            @media (min-width: 768px) {
2238            }
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262 
2263    </style>
2264
2265
2266
2267
2268
2269
2270
2271
2272<div class="my-border-top mt-2 md:mt-4">
2273    <div class="container  w-full md:max-w-[1280px] mx-auto">
2274
2275        <div id="mobile-header-links">
2276
2277            <div class="my-zoom-0-8 text-white w-full">
2278
2279                <span class="flex items-center justify-center w-full mt-2 gap-4 md:gap-0"> <!-- left-show-hide-menu.php -->
2280                   
2281                    <a href="/subscribe.php" class="ifj-subscribe-btn">
2282                        <button class="bg-teal-500 text-white ml-2 h-[26px] w-[100px] my-font-14-px my-font-roboto-bold">SUBSCRIBE</button>
2283                    </a>
2284
2285                    <span class="flex items-center">
2286                        
2287                    <a href="#" class="fp-sign-in">
2288                            <i class="material-icons text-4xl pl-5 cursor-pointer">person</i>
2289                    </a>
2290                    <a href="#" class="fp-sign-in">
2291                        <span id="sign-in-text" class="my-font-roboto-bold my-font-14-px cursor-pointer">SIGN IN</span>
2292                    </a>
2293                    </span>
2294
2295                    <a href="/epaperlink.php" class="ifj-epaper-btn hidden" alt="Irish Farmers Journal ePaper" title="Irish Farmers Journal ePaper">
2296                        <img src="/2024-files/epaper-icon.png"  class="h-[35px] epaper-icon">
2297                    </a>
2298
2299                    <a class="fp-member-center ml-[5%] mr-[5%] ">
2300                    <button class="bg-gray-600 text-white h-[26px] w-[100px] my-font-14-px my-font-roboto-bold">
2301                      MY ACCOUNT
2302                    </button>
2303                    </a>
2304
2305                    <a class="fp-sign-out" href="/logout.php">
2306                    <span class="my-font-roboto-bold my-font-14-px cursor-pointer text-white">SIGN OUT</span>
2307                    </a>
2308
2309                </span>
2310
2311            </div>
2312
2313        </div>
2314
2315
2316
2317        <span class="flex items-center justify-center flex w-[100%] mb-5 mt-5">
2318                    <form action="/2024-search.php" method="get">
2319                    <div class="flex items-center  rounded ">
2320                    <input id="search-input-desktop-header" type="search" name="stq" placeholder="Search for stories, topics" class="px-4 md:px-2 py-1 md:py-0.5 w-[100%] focus:outline-none rounded-bl-md">
2321                    <button class="w-[30%] my-main-bg-color ml-2  flex items-center px-4 py-1 my-text-color-gray-1 text-white  hover:my-main-bg-color focus:outline-none rounded">
2322                        <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2" viewBox="0 0 20 20" fill="currentColor">
2323                            <path fill-rule="evenodd" d="M12.9 14.32a8 8 0 111.42-1.42l4.5 4.5a1 1 0 01-1.42 1.42l-4.5-4.5zM8 14a6 6 0 100-12 6 6 0 000 12z" clip-rule="evenodd"></path>
2324                        </svg>
2325                        <span class="md:hidden">Search</span>
2326                    </button>
2327                    
2328                    </div>
2329                    </form>
2330        </span>
2331
2332
2333
2334
2335        <!-- Price Bar -->
2336        <div class="flex justify-start items-center"> <!-- h-full -->
2337
2338            <footer class="my-custom-bg-gray text-white py-2">
2339                <div class="container mx-auto px-4 md:px-0">
2340                    <div class="flex flex-wrap mx-2">
2341                                                    <div class="w-full px-1">
2342
2343                                
2344
2345
2346
2347                                <a href="#" class="text-sm my-font-roboto-medium _footer-category flex items-center">
2348                                    <div class="my-red-square-8-8 my-main-bg-color mr-2"></div> NEWS                                        
2349                                </a>
2350
2351                                
2352
2353
2354
2355
2356
2357                                <ul class="_footer-dropdown md:mt-2 mb-6 md:mb-0">
2358                                                                                                                <li><a href="/latestheadlines" class="block py-1.5 text-md">Latest headlines</a></li>
2359                                                                            <li><a href="/farm/schemes/282" class="block py-1.5 text-md">Schemes</a></li>
2360                                                                            <li><a href="/farm/industry-opinion/279" class="block py-1.5 text-md">Viewpoints</a></li>
2361                                                                            <li><a href="/farming-news/northern-ireland/321" class="block py-1.5 text-md">Northern Ireland</a></li>
2362                                                                            <li><a href="/farm/farmer-writes/281" class="block py-1.5 text-md">Farmer Writes</a></li>
2363                                                                            <li><a href="/farm/the-dealer/280" class="block py-1.5 text-md">The Dealer</a></li>
2364                                                                            <li><a href="/farm/advertisersanouncements/595" class="block py-1.5 text-md">Sponsored</a></li>
2365                                                                    </ul>
2366                            </div>
2367                                                    <div class="w-full px-1">
2368
2369                                
2370
2371
2372
2373                                <a href="#" class="text-sm my-font-roboto-medium _footer-category flex items-center">
2374                                    <div class="my-red-square-8-8 my-main-bg-color mr-2"></div> LIVESTOCK                                        
2375                                </a>
2376
2377                                
2378
2379
2380
2381
2382
2383                                <ul class="_footer-dropdown md:mt-2 mb-6 md:mb-0">
2384                                                                                                                <li>
2384<a href="/tag/Mart-reports" class="block py-1.5 text-md">Mart reports</a></li>
2385                                                                            <li><a href="/farming-news/beef/54" class="block py-1.5 text-md">Beef</a></li>
2386                                                                            <li><a href="/farming-news/dairy/55" class="block py-1.5 text-md">Dairy</a></li>
2387                                                                            <li><a href="/farming-news/sheep/56" class="block py-1.5 text-md">Sheep</a></li>
2388                                                                            <li><a href="/farm/pedigree/320" class="block py-1.5 text-md">Pedigree</a></li>
2389                                                                            <li><a href="/tag/Animal-health" class="block py-1.5 text-md">Animal health</a></li>
2390                                                                    </ul>
2391                            </div>
2392                                                    <div class="w-full px-1">
2393
2394                                
2395
2396
2397
2398                                <a href="#" class="text-sm my-font-roboto-medium _footer-category flex items-center">
2399                                    <div class="my-red-square-8-8 my-main-bg-color mr-2"></div> SECTORS                                        
2400                                </a>
2401
2402                                
2403
2404
2405
2406
2407
2408                                <ul class="_footer-dropdown md:mt-2 mb-6 md:mb-0">
2409                                                                                                                <li><a href="/farming-news/agribusiness/58" class="block py-1.5 text-md">Agribusiness</a></li>
2410                                                                            <li><a href="/farm/tillage/57" class="block py-1.5 text-md">Tillage</a></li>
2411                                                                            <li><a href="/farming-news/machinery/59" class="block py-1.5 text-md">Machinery</a></li>
2412                                                                            <li><a href="/tag/Renewables" class="block py-1.5 text-md">Renewables</a></li>
2413                                                                            <li><a href="/farm/property/76" class="block py-1.5 text-md">Property</a></li>
2414                                                                            <li><a href="/farm/buildings/315" class="block py-1.5 text-md">Buildings</a></li>
2415                                                                            <li><a href="/tag/Climate-and-environment" class="block py-1.5 text-md">Climate &amp; environment</a></li>
2416                                                                            <li><a href="/farm/forestry/316" class="block py-1.5 text-md">Forestry</a></li>
2417                                                                    </ul>
2418                            </div>
2419                                                    <div class="w-full px-1">
2420
2421                                
2422
2423
2424
2425                                <a href="#" class="text-sm my-font-roboto-medium _footer-category flex items-center">
2426                                    <div class="my-red-square-8-8 my-main-bg-color mr-2"></div> IRISH COUNTRY LIVING                                        
2427                                </a>
2428
2429                                
2430
2431
2432
2433
2434
2435                                <ul class="_footer-dropdown md:mt-2 mb-6 md:mb-0">
2436                                                                                                                <li><a href="/farm/life/70" class="block py-1.5 text-md">Features</a></li>
2437                                                                            <li><a href="/farm/comment/74" class="block py-1.5 text-md">Columns</a></li>
2438                                                                            <li><a href="/farm/life/70" class="block py-1.5 text-md">Lifestyle</a></li>
2439                                                                    </ul>
2440                            </div>
2441                                                    <div class="w-full px-1">
2442
2443                                
2444
2445
2446
2447                                <a href="#" class="text-sm my-font-roboto-medium _footer-category flex items-center">
2448                                    <div class="my-red-square-8-8 my-main-bg-color mr-2"></div> FARM PROGRAMMES                                        
2449                                </a>
2450
2451                                
2452
2453
2454
2455
2456
2457                                <ul class="_footer-dropdown md:mt-2 mb-6 md:mb-0">
2458                                                                                                                <li><a href="/farm/tullamore-farm/642" class="block py-1.5 text-md">Tullamore Farm</a></li>
2459                                                                            <li><a href="/farmprogrammes/footprintfarmers/9999641" class="block py-1.5 text-md">Footprint Farmers</a></li>
2460                                                                    </ul>
2461                            </div>
2462                                                    <div class="w-full px-1">
2463
2464                                
2465
2466
2467
2468                                <a href="#" class="text-sm my-font-roboto-medium _footer-category flex items-center">
2469                                    <div class="my-red-square-8-8 my-main-bg-color mr-2"></div> HUBS                                        
2470                                </a>
2471
2472                                
2473
2474
2475
2476
2477
2478                                <ul class="_footer-dropdown md:mt-2 mb-6 md:mb-0">
2479                                                                                                                <li><a href="/hub/knowledge" class="block py-1.5 text-md">Knowledge Hub</a></li>
2480                                                                            <li><a href="/hub/schools" class="block py-1.5 text-md">Schools Hub</a></li>
2481                                                                            <li><a href="/hub/young-stock" class="block py-1.5 text-md">Young Stock Hub</a></li>
2482                                                                            <li><a href="/videohub" class="block py-1.5 text-md">Video Hub</a></li>
2483                                                                    </ul>
2484                            </div>
2485                                                    <div class="w-full px-1">
2486
2487                                
2488
2489
2490
2491                                <a href="#" class="text-sm my-font-roboto-medium _footer-category flex items-center">
2492                                    <div class="my-red-square-8-8 my-main-bg-color mr-2"></div> BUSINESS OF FARMING                                        
2493                                </a>
2494
2495                                
2496
2497
2498
2499
2500
2501                                <ul class="_footer-dropdown md:mt-2 mb-6 md:mb-0">
2502                                                                                                                <li>
2502<a href="/martwatch" class="block py-1.5 text-md">Martwatch</a></li>
2503                                                                            <li><a href="/tag/Business-of-Farming" class="block py-1.5 text-md">Mart &amp; Factory Prices</a></li>
2504                                                                    </ul>
2505                            </div>
2506                                                    <div class="w-full px-1">
2507
2508                                
2509
2510
2511
2512                                <a href="#" class="text-sm my-font-roboto-medium _footer-category flex items-center">
2513                                    <div class="my-red-square-8-8 my-main-bg-color mr-2"></div> MULTIMEDIA                                        
2514                                </a>
2515
2516                                
2517
2518
2519
2520
2521
2522                                <ul class="_footer-dropdown md:mt-2 mb-6 md:mb-0">
2523                                                                                                                <li><a href="/my-podcasts" class="block py-1.5 text-md">Podcasts</a></li>
2524                                                                            <li><a href="/farm/video/651" class="block py-1.5 text-md">Videos</a></li>
2525                                                                            <li><a href="/tag/In-pictures" class="block py-1.5 text-md">Photography</a></li>
2526                                                                    </ul>
2527                            </div>
2528                                            </div>
2529                    <div class="_footer-small-links text-gray-400 text-xs mt-8">
2530                            <a href="/information/contact-us/150935">Contact us</a>
2531                            <a href="/mediakit.php">Advertise with us</a>
2532                            <a href="/information/company-information/150940">Company information</a>
2533                            <a href="/information/careers/152746">Career opportunities</a>
2534                            <a href="/information/privacy-policy/150948">Privacy statement</a>
2535                            <a href="/information/terms-of-service/150950">Terms of service</a>
2536                            <a href="/information/commenting-policy/155484">Commenting policy</a>
2537                            <a class="ot-sdk-show-settings">Cookie Settings</a>
2538                            <div class="_footer-last-item">© Irish Farmers Journal 2026</div>
2539                        </div>
2540                    </div>
2541
2542                </div>
2543            </footer>
2544
2545        </div>
2546    </div>
2547</div>
2548
2549
2550
2551
2552
2553    
2553<script>
2554
2555
2556        
2557
2558        // Script para gerenciar a expansão dos sub-itens no mobile
2559        $(document).ready(function() {
2560            $('._footer-category').click(function() {
2561                    e.preventDefault(); 
2562                    $(this).next('._footer-dropdown').toggleClass('active');
2563                    $(this).toggleClass('active'); // Alterna a seta para cima/baixo e a linha
2564            });
2565        });
2566
2567
2568        $(document).ready(function() {
2569            // Remover href="#" em mobile para evitar problemas de scroll
2570                $('._footer-category').each(function() {
2571                    $(this).attr('href', '#');
2572                    $(this).off('click').on('click', function(e) {
2573                        e.preventDefault(); // Previne o comportamento padrão do link
2574                        $(this).next('._footer-dropdown').toggleClass('active');
2575                        $(this).toggleClass('active'); // Alterna a seta para cima/baixo e a linha
2576                    });
2577                });
2578
2579        });
2580
2581
2582    </script>
2582
2583
2584        </div>
2585    </div>
2586
2587<!-- body tailwind start -->
2588
2589
2590
2591        <!--<div class="container center white-background article-container">-->
2592        <main class="container grid w-full md:max-w-[1280px] mx-auto    pr-0 pl-0 md:pr-4 md:pl-4  md:pr-0 md:pl-0 pt-0 md:pt-6 bg-white article-container " data-swiftype-name="body" data-swiftype-type="text">	
2593
2594
2595
2596				
2597
2598
2599<!-- line 1 -->
2600<div class="line1 flex flex-wrap order-2 md:order-1">
2601	<div class="position1A w-full md:w-3/12 px-2"></div>
2602	<div class="position1B w-full md:w-6/12 px-2.5">  
2603
2604		<div class="block md:hidden mb-4">
2605							<a class="red my-main-color uppercase my-font-roboto-regular text-xs" href="/farm/pensions & savings /430">Pensions & Savings </a>
2606					</div>	
2607
2608		<h1 class="article-title black my-font-coranto-bold text-[1.875rem] mb-4 md:text-[2.375rem] leading-[2.0625rem] md:leading-[2.5rem]" data-swiftype-index="true"> Tax planning is about efficiency, not saving 		</h1> <!-- desktop title -->
2609	
2610		<h2 class="article-desc text-[#777777] text-lg padding-tb-10 md:text-base my-font-coranto-2-headline-regular component-sub-title mb-4 leading-[1.3125rem]" data-swiftype-index="true"> 
2611			While there are plenty of ways to reduce a tax bill, spending should always make good financial sense.    		
2612		</h2> <!-- desktop description -->
2613	</div>
2614	
2615	<div class="position1C w-full md:w-3/12 px-2 md:hidden"><!-- against of 2a | here is for mobile-->
2616  	
2617
2618<hr class="h-0.5 border-t border-gray-500 mt-4">
2619<hr class="h-0.5 border-t border-gray-500 mb-0.5 mt-0.5">
2620<hr class="h-0.5 border-t border-gray-500 mb-4">
2621
2622<div class="article-info flex flex-row">
2623  <div class="w-1/2 text-left">
2624    <span class="block float-left">
2625  <div>
2626
2627
2628		<div class="padding-t-10 padding-b-15" data-swiftype-index='true'>
2629        	<a href="/journalists/lrkelly">
2630        		<span class="editor-new my-font-coranto-bold text-lg black" data-swiftype-name='info'>
2631        			Lorcan Roche Kelly        		</span>
2632        	</a>
2633    	</div>
2634
2635
2636
2637<!--		
2638		<div class="article-breadcrumb red uppercase my-main-color text-sm my-font-roboto-medium" data-swiftype-index='false' >
2639			<a class="red" href="farming-news/focus/78">Focus</a>  
2640
2641						>
2642			<a class="red" href="farm/pensions & savings /430">Pensions & Savings 				
2643			</a>
2644															
2645		</div>
2646-->
2647
2648
2649		<!--<div class="text-[#777777] text-xs my-font-roboto-regular">
2650			Pensions & Savings  correspondent
2651		</div>-->
2652
2653
2654
2655
2656
2657
2658		<div class="text-[#777777] text-xs my-font-roboto-regular">
2659	    
2660		 		 Sat 5 September 2026 12:00 AM 
2661		</div>
2662
2663
2664		
2665
2666		<!-- id="3" href="#3"  data-link-ref="" -->  <!-- load only 1 article instead of 3 (part_2) -->
2667
2668
2669
2670		<a id="#1"  href="#1"  data-link-ref="focus/pensions-and-savings-/tax-planning-is-about-efficiency-not-saving-930359" data-id-ref="930359" data-premium-ref="1" data-memberplus-ref="0" class="hash"></a>
2671
2672
2673		<div class="flex justify-left space-x-4 mt-2">
2674
2675		    <a class="share-btn-v2 share-mail-v2" id="share-mail-v2" data-ref-title="Tax planning is about efficiency, not saving " data-ref-permlink="http://www.farmersjournal.ie/focus/pensions-and-savings-/tax-planning-is-about-efficiency-not-saving-930359">		    
2676		        <i class="fa-regular fa-envelope article-user-action text-xl" alt="Email the writer" title="Email the writer"></i>                                            
2677
2678		    </a>
2679
2680		    <!--<a class="share-btn-v2 save-article-btn" rel-story-id="930359">		     
2681		        <i class="fa-regular fa-bookmark article-user-action text-xl" alt="Save this article" title="Save this article"></i>
2682		    </a>-->    
2683
2684		    <i class="fa-solid fa-arrow-up-from-bracket article-user-action share-btn-v2 text-xl" alt="Share this article" title="Share this article" id="mobile-share"></i>
2685
2686
2687								<!-- mobile share function start -->
2688								
2688<script>
2689								'use strict';
2690
2691								function sleep(delay) {
2692								  return new Promise(resolve => {
2693								    setTimeout(resolve, delay);
2694								  });
2695								}
2696
2697								function logText(message, isError) {
2698								  if (isError)
2699								    console.error(message);
2700								  else
2701								    console.log(message);
2702
2703								  const p = document.createElement('p');
2704								  if (isError)
2705								    p.setAttribute('class', 'error');
2706								  document.querySelector('#output').appendChild(p);
2707								  p.appendChild(document.createTextNode(message));
2708								}
2709
2710								function logError(message) {
2711								  logText(message, true);
2712								}
2713
2714								async function testWebShare() {
2715								  if (navigator.share === undefined) {
2716								    logError('Error: Unsupported feature: navigator.share()');
2717								    return;
2718								  }
2719
2720
2721								  let title = "Tax planning is about efficiency, not saving";
2722								  const text = "";
2723								  const url = "https://www.farmersjournal.ie/focus/pensions-and-savings-/tax-planning-is-about-efficiency-not-saving-930359";
2724
2725
2726								  try {
2727								    await navigator.share({title, text, url});
2728								    logText('Successfully sent share');
2729								  } catch (error) {
2730								    logError('Error sharing: ' + error);
2731								  }
2732								}
2733
2734								async function testWebShareDelay() {
2735								  await sleep(4000);
2736								  testWebShare();
2737								}
2738
2739								function onLoad() {
2740
2741								  /*document.querySelector('#share').addEventListener('click', testWebShare);*/
2742								  document.querySelector('#mobile-share').addEventListener('click', testWebShare);
2743
2744								  if (navigator.share === undefined) {
2745								    if (window.location.protocol === 'http:') {
2746								      // navigator.share() is only available in secure contexts.
2747								      window.location.replace(window.location.href.replace(/^http:/, 'https:'));
2748								    } else {
2749								      logError('Error: You need to use a browser that supports this draft ' +
2750								               'proposal.');
2751								    }
2752								  }
2753								}
2754
2755								window.addEventListener('load', onLoad);
2756								</script>
2756		                
2757								<!-- mobile share function end -->
2758
2759
2760
2761		</div>
2762
2763
2764    </div>
2765    </span>
2766  </div>
2767  <div class="w-1/2 text-right">
2768    <span class="block float-right">    			<img alt="Lorcan Roche Kelly" title="Lorcan Roche Kelly" src="https://s3-eu-west-1.amazonaws.com/ifj/images/lrkelly.png" style="border-radius: 50%; height: 80px; border: 1px solid #707070"  onerror="this.onerror=null;this.style='';this.src='https://www.farmersjournal.ie/images/white.png';"></span>
2769  </div>
2770</div>
2771
2772
2773<hr class="h-0.5 border-t border-gray-500 mb-4 mt-4">
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783  </div>
2784</div>
2785
2786
2787
2788<!-- line 2 -->
2789<div class="line2 flex flex-wrap order-1 md:order-2" align="center">
2790
2791	<div class="position2A w-full md:w-3/12 px-2 order-2 md:order-1 hidden md:block"> <!-- against of 1c | here is for desktop-->
2792	
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804					<div>
2805						<img alt="Lorcan Roche Kelly" title="Lorcan Roche Kelly" src="https://s3-eu-west-1.amazonaws.com/ifj/images/lrkelly.png" style="border-radius: 50%; height: 80px; border: 1px solid #707070"  onerror="this.onerror=null;this.style='';this.src='https://www.farmersjournal.ie/images/white.png';">
2806					</div>
2807
2808
2809
2810
2811
2812                                    							<div class="padding-t-10 padding-b-15 mt-2" data-swiftype-index='true'>
2813									                            	<a href="/journalists/lrkelly">
2814									                            		<span class="editor-new my-font-coranto-bold text-lg black" data-swiftype-name='info'>
2815									                            			Lorcan Roche Kelly									                            		</span>
2816									                            	</a>
2817								                            	</div>
2818
2819																<!--<div class="text-[#777777] text-sm my-font-roboto-regular">
2820																	Pensions & Savings  correspondent
2821																</div>-->								                            	
2822
2823
2824																<div class="article-breadcrumb red uppercase my-main-color text-sm my-font-roboto-medium" data-swiftype-index='false' >
2825																	<!--<a class="red" href="/farming-news/focus/78">Focus</a>-->  
2826
2827																																		
2828																	<a class="red" href="/farm/pensions & savings /430">Pensions & Savings 																		
2829																	</a>
2830					            																					
2831																</div>
2832
2833
2834																<div class="text-[#777777] text-sm my-font-roboto-regular">
2835															    
2836																 																 Sat 5 September 2026 8:30 AM
2837														 
2838																</div>
2839
2840
2841
2842
2843				    						
2844
2845					<!-- id="3" href="#3"  data-link-ref="" -->  <!-- load only 1 article instead of 3 (part_2) -->
2846
2847
2848
2849					<a id="#1"  href="#1"  data-link-ref="focus/pensions-and-savings-/tax-planning-is-about-efficiency-not-saving-930359" data-id-ref="930359" data-premium-ref="1" data-memberplus-ref="0" class="hash"></a>
2850
2851
2852					<div class="flex justify-center space-x-4 mt-2">
2853
2854					    <a class="share-btn-v2 share-mail-v2" id="share-mail-v2" data-ref-title="Tax planning is about efficiency, not saving " data-ref-permlink="http://www.farmersjournal.ie/focus/pensions-and-savings-/tax-planning-is-about-efficiency-not-saving-930359">
2855					        <!--<img class="article-user-action" alt="Email the writer" title="Email the writer" src="https://www.farmersjournal.ie/images/article_page/action-sharemail-35-35.png">-->
2856					        <i class="fa-regular fa-envelope article-user-action text-xl" alt="Email the writer" title="Email the writer"></i>                                                
2857					    </a>
2858
2859					    <a class="share-btn-v2 save-article-btn" rel-story-id="930359">
2860					        <!--<img class="article-user-action" alt="Save this article" title="Save this article" src="https://www.farmersjournal.ie/images/article_page/action-download-35-35.png">-->
2861					        <i class="fa-regular fa-bookmark article-user-action text-xl" alt="Save this article" title="Save this article"></i>
2862					    </a>    
2863
2864					    <!--<img class="article-user-action share-btn-v2" alt="Share this article" title="Share this article" id="share-socialmedia-v2" src="https://www.farmersjournal.ie/images/article_page/action-share-35-35.png">-->
2865					    <i class="fa-solid fa-arrow-up-from-bracket article-user-action share-btn-v2 text-xl" alt="Share this article" title="Share this article" id="share-socialmedia-v2"></i>
2866
2867					</div>
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894	</div> <!-- position2A ends -->
2895
2896
2897<div class="position2B md:order-2 w-full md:w-6/12 px-0 md:px-2 2b-middle-content">
2898  	
2899<!-- start main picture desktop and mobile -->
2900<div id="artcileCarousel-0" class="carousel slide" data-ride="carousel"> <!-- data-interval="50000"  -->
2901<div class="carousel-inner" >
2902
2903	
2904
2905
2906
2907			<div class="item active"><div class="article-image relative"><a href="https://d3mdtxxgfz6upn.cloudfront.net/WEBFILES/000/930/359/2602548-930359.jpg" class="glightbox" data-title=""><img alt="Tax planning is about efficiency, not saving " title="Tax planning is about efficiency, not saving " class="og-image-fix" src="https://d3mdtxxgfz6upn.cloudfront.net/WEBFILES/000/930/359/2602548-930359.jpg" alt=""></a> <!-- og-image-fix -->
2908
2909
2910<!--<div class="absolute bottom-2 right-2 bg-black bg-opacity-60 p-2 rounded-full camera-icon cursor-pointer">
2911<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
2912  <path stroke-linecap="round" stroke-linejoin="round" d="M3 8h4l2-3h6l2 3h4a2 2 0 012 2v8a2 2 0 01-2 2H3a2 2 0 01-2-2v-8a2 2 0 012-2zm9 3a3 3 0 100 6 3 3 0 000-6z" />
2913</svg>-->
2914
2915<div class="absolute bottom-2 right-2 bg-opacity-60  rounded-full camera-icon cursor-pointer mr-[10px]">
2916<i class="fas fa-camera text-gray-500 text-3xl"></i>
2917
2918
2919
2920
2921    </div>
2922
2923  </div><!-- div 9 --><div>&nbsp;</div><!-- div 8 --></div><!-- div 3a -->	
2924
2925
2926
2927
2928		</div><!-- div 2 -->
2929</div>
2930<!-- ends main picture desktop and mobile -->
2931
2932
2933  </div>
2934
2935  <!-- cel number 9 (line 3 column C)-->
2936  <div class="position2C md:order-3 w-full md:w-3/12 ">
2937		                        
2938
2939
2940
2941
2942		   <div class="hidden md:block"><!-- if desktop https://trello.com/c/59sFY5sc/901-show-ad-units-on-paywall-page-on-mobile -->
2943
2944
2945		   								<div class="gadvertisementheader  px-2 py-1   mb-4 md:mb-0">
2946                        <div class="mx-auto text-center ml-[13%] md:ml[0] mb-4 md:mb-0">
2947                                <span class=" my-font-roboto-regular text-[0.625rem] my-text-color-gray-1 text-center">ADVERTISEMENT</span> 
2948								<!-- /144848334/new2025-articlepage-deskmob-slot1-300x250 -->
2949								<div id='div-gpt-ad-1753366870041-0' style='min-width: 300px; min-height: 250px;'>
2950								  
2950<script>
2951								    googletag.cmd.push(function() { googletag.display('div-gpt-ad-1753366870041-0'); });
2952								  </script>
2952
2953								</div>
2954
2955                        </div>       
2956                     </div>
2957                 	
2958
2959
2960
2961		   	
2962		   </div>
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973  </div>
2974</div>
2975<!-- line 2 end -->
2976
2977
2978
2979
2980<!-- line 3 -->
2981<div class="line3 flex flex-wrap order-3">
2982  <div class="position3A w-full md:w-3/12 px-2"></div>
2983  <div class="position3B w-full md:w-6/12 px-2"><!-- article body -->
2984
2985  	
2986       	<div class="fp-article-access ifj-paywalled-content article-body text-base my-font-coranto-2-headline-regular padding-tb-20 bottom-border" data-swiftype-index='true'>
2987		                        	
2988		                        	<p>October’s budget is expected to include some measures to reduce the income tax burden on earners, with a widening of tax bands the most likely route to be announced by Government.</p><p>That, should it happen, will go some way towards reducing income tax burdens in 2027. </p><p>However, rather than relying on changes from Government for management of tax liabilities, farmers and businesses need to continually seek to be as tax efficient as possible. Being tax-efficient is about keeping as much hard-earned income as possible and using earnings from the farm business to reinvest in the future of both the business and the owner. </p><div att="1" class="mx-auto w-auto w-fit text-center gadvertisementheader px-2 pb-2 mb-2"><span class=" my-font-roboto-regular text-[0.625rem] my-text-color-gray-1 text-center">ADVERTISEMENT</span><!-- /144848334/new2025-articlepage-deskmob-slot2-300x250 -->
2989<div id='div-gpt-ad-1753366990195-0' style='min-width: 300px; min-height: 250px;'>
2990  
2990<script>
2991    googletag.cmd.push(function() { googletag.display('div-gpt-ad-1753366990195-0'); });
2992  </script>
2992
2993</div></div><p><strong>How best to do that</strong></p><p>As outlined on page 50, the single best way to be both tax-efficient and to build savings for the future is to contribute as much as you can – within the allowed limits – to your pension. </p><p>If the farm business has a strong year, then it makes sense to maximise pension payments. If your income is pushed into the higher-rate tax bracket during a good year, then pension contributions can significantly reduce your tax bill.</p><p>Once your pension is sorted, there are some other tax house-keeping duties that should be attended to each year – understand tax credits and ensuring full use is being made of all the available allowances. Remember, a subscription to the Irish Farmers Journal is tax-deductible for farmers. While there are not many personal allowances that can be claimed for pay-as-you-earn (PAYE) workers, remember to keep any receipts for medical expenses incurred during the year; there is a 20% rebate available from Revenue on those. For nursing home expenses that rises to 40%.</p><p>Make sure that allowances are maximised for married couples or couples in a civil partnership. Keep on top of specific farm reliefs, such as stock relief, accelerated capital allowances, changes to VAT refunds and capital gains tax relief. October’s budget may well see some changes to these allowances for 2027. </p><p>For farmers, certain income streams can be tax-free. Earnings from qualifying leases are not subject to income tax. There are caps to the tax-free income which can be claimed, ranging from €18,000 for a five-year lease to €40,000 for a 15-year lease. It is worth noting that leases for solar installations are not covered by this tax-free allowance. The annual payments for forestry plantations are exempt from income tax, as is income from the occupation of woodlands. Income from forestry is subject to PRSI and USC.</p><p><strong>A different outlook</strong></p><p>
2993While tax efficiency is about paying as little tax as possible, it can more correctly be described as minimising tax payments while maintaining a desired standard of living and making arrangements for the future. For example, if a farmer on the higher rate of tax decides to spend €1,000 on a deductible item for the business, they will save several hundred euro on their tax bill. They will, however, also have several hundred euro less for their other spending needs. For farmers on the lower rate of tax, the salesman’s pitch that a purchase “can be written off against tax” should carry even less weight.</p><p>Every potential investment in the farm business should be made on its own merits and be backed by a solid business plan. The tax implications of spending should form part of the decision when calculating whether to make an investment or not, rather than have the potential tax saving lead the decision. Efficient tax planning is also critical from a cashflow perspective. In farming, with its hugely volatile incomes from year to year, tax bills for a good year can arrive during a year when incomes are tight. We saw this in the dairy sector, that has seen particularly volatile returns since 2022, and are seeing larger than usual tax bills for the beef sector on the back of unusually high returns in 2025. </p><p>As usual with any aspect of financial planning, getting the right advice is critical. Talk to an accountant or financial adviser who can help when making decisions which will have tax implications. If nothing else, their bill should be tax deductible.
2994</p><p></p>
2995
2996
2997		                        		
2998		</div> <!-- article-body ends -->
2999
3000		<!-- modals 2025 start -->
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018<!-- gshowcase -->
3019
3020
3021
3022
3023
3024
3025
3026<!-- if mobile and not logged https://trello.com/c/59sFY5sc/901-show-ad-units-on-paywall-page-on-mobile -->
3027
3028		   <div class="block md:hidden"><!--  -->
3029
3030
3031		   			
3032
3033
3034
3035		   	
3036		   </div>
3037
3038
3039
3040
3041
3042
3043
3044
3045<!-- tags -->
3046
3047
3048
3049<div>
3050		                        <div class="flex">
3051
3052
3053
3054
3055		                        			                            <!--<div class="related-topic-title padding-tb-20">RELATED TOPIC</div>-->
3056
3057<div class="border-gray-300 border-t inline-flex items-center whitespace-nowrap article-930359-list mt-2 mb-2 pt-2 mx-auto">
3058	    <div class="flex flex-wrap gap-2">
3059
3060  <!--<span class="px-4 px-1 pb-1  bg-gray-500 text-white rounded-full">Debt</span>
3061  <span class="px-4 px-1 pb-1  bg-gray-500 text-white rounded-full">Farmers</span>
3062  <span class="px-4 px-1 pb-1  bg-gray-500 text-white rounded-full">Health</span>
3063  <span class="px-4 px-1 pb-1  bg-gray-500 text-white rounded-full">Labour</span>
3064  <span class="px-4 px-1 pb-1  bg-gray-500 text-white rounded-full">Mental health</span>
3065  <span class="px-4 px-1 pb-1  bg-gray-500 text-white rounded-full">Profit</span>-->
3066
3067<span class="px-4 mt-1 mb-1 pb-0.5 bg-gray-500 text-white rounded-full">
3068    	<a href="/tag/Management">
3069    
3070    	Management
3071    	
3072    	</a>
3073    	</span><span class="px-4 mt-1 mb-1 pb-0.5 bg-gray-500 text-white rounded-full">
3074    	<a href="/tag/Tax">
3075    
3076    	Tax
3077    	
3078    	</a>
3079    	</span>
3080
3081
3082
3083</div>
3084
3085
3086</div>
3087
3088
3089		                        </div>
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116</div>
3117<!-- tags -->
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133   </div><!-- end position 3B article body -->
3134
3135
3136
3137
3138<!-- related stories  mobile before most read -->
3139<div class='md:hidden block md:hidden line-5 flex flex-wrap data-swiftype-index='false''><!-- component related-stories.php -->
3140<main class="container w-full md:max-w-[1280px] mx-auto   pr-2 pl-2 md:pr-4 md:pl-4 md:pr-0 md:pl-0 mt-8 pb-2 bg-white">
3141    <div class="grid grid-cols-1 md:grid-cols-4 md:gap-3 border-t-4 border-gray-300  pt-4 md:pt-4">
3142
3143        <div class="col-span-4 "> <!--Div A1-->
3144            <div class="section-title">
3145                <article class="news-item flex flex-col"> <!--  h-full -->
3146                <h2 class="flex space-x-2">
3147                    <div class="my-red-square my-main-bg-color"></div>
3148                    <span class="my-text-color-gray-1 text-sm my-font-roboto-medium pb-2 uppercase"><a href="#">Related Stories</a> <span class="my-main-color">»</span></span>
3149                </h2>
3150                </article>
3151            </div>
3152
3153            <div class="grid grid-cols-1 md:grid-cols-4 md:gap-8">
3154
3155                <!-- news 1 -->
3156                <div class="md:mb-0 sm:w-full md-border-right md:pr-3 desktop-image-container">
3157                    <article class="news-item flex flex-col h-full">
3158
3159                        <a href="/beef/management/beef-management-closing-paddocks-nutrient-application-and-ration-composition-933895">
3160                            <picture>
3161                                <source media="(min-width: 0px)" srcset="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/933/895/2613580-933895.jpg">
3162                                <img src="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/933/895/2613580-933895.jpg" alt="Beef management: closing paddocks, nutrient application and ration composition " class="w-full h-[170px] object-cover">
3163                            </picture>
3164                        </a>
3165
3166                        <div class="flex flex-col justify-between">
3167                            <div>
3168                                <div class="flex justify-between items-center">
3169                                    <span class="my-text-color-gray-1 pt-2 my-font-14-px my-font-roboto-medium uppercase">
3170                                        <a class='my-font-roboto-medium' href='/farming-news/beef/54'>BEEF</a>                                    </span>                                         
3171                                    <a href='/subscribe.php' target='_blank' class='ifj-padlock'><div class='p-0.5 w-fit'><img src='https://d3mdtxxgfz6upn.cloudfront.net/images/padlock-green.png' class='h-3 min-w-[0.625rem]'></div></a>                                </div>
3172                                <h2 class="my-font-coranto-bold text-xl md:text-2xl mt-2 component-article-title">                                        
3173                                    <a href="/beef/management/beef-management-closing-paddocks-nutrient-application-and-ration-composition-933895">    
3174                                        Beef management: closing paddocks, nutrient application and ration composition                                     </a>
3175                                </h2>
3176                            </div>
3177                        </div>
3178                    </article>
3179                </div>
3180
3181                    <!-- news 2 -->
3182                    <div class="sm:w-full md-border-right md:pr-3 desktop-image-container   mt-4 pt-1 border-t border-gray-300 md:border-t-0 md:mt-0 md:pt-0">
3183                        <article class="news-item flex flex-col h-full">                            
3184                            <a href="/dairy/management/dairy-management-wintering-options-fertiliser-and-slurry-deadlines-933489">    
3185                            <picture class="hidden md:block">
3186                                    <source media="(min-width: 1024px)" srcset="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/933/489/2613519-933489.jpg">
3187                                    <img src="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/933/489/2613519-933489.jpg" alt="Dairy Management: wintering options, fertiliser and slurry deadlines" class="w-full h-[170px] object-cover">
3188                            </picture>
3189                            </a>
3190
3191                            <div class="flex flex-col justify-between">
3192                                <div>
3193                                    <div class="flex justify-between items-center">
3194                                        <span class="my-text-color-gray-1 pt-2 my-font-14-px my-font-roboto-medium uppercase">
3195                                            <a class='my-font-roboto-medium' href='/farming-news/dairy/55'>DAIRY</a>                                        </span>
3196                                        <subscriber-only-badge paper-code="" user-type="" article-type="0" ></subscriber-only-badge>
3197                                    </div>
3198                                    <h2 class="my-font-coranto-bold text-xl md:text-2xl mt-2 component-article-title">                                        
3199                                        <a href="/dairy/management/dairy-management-wintering-options-fertiliser-and-slurry-deadlines-933489">
3200                                            Dairy Management: wintering options, fertiliser and slurry deadlines                                        </a>
3201                                    </h2>
3202                                </div>
3203                            </div>
3204                        </article>
3205                    </div>
3206
3207                <!-- news 3 -->
3208                
3209
3210
3211				<div class="sm:w-full md-border-right md:pr-3 desktop-image-container   mt-4 pt-1 border-t border-gray-300 md:border-t-0 md:mt-0 md:pt-0">
3212                        <article class="news-item flex flex-col h-full">
3213                            <a href="/news/news/meps-reject-emergency-brake-for-eu-carbon-tax-on-fertiliser-imports-933148">
3214                            <picture class="hidden md:block">
3215                                <source media="(min-width: 1024px)" srcset="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/933/148/2610465-933148.jpg">
3216                                <img src="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/933/148/2610465-933148.jpg" alt="MEPs reject emergency brake for EU carbon tax on fertiliser imports" class="w-full h-[170px] object-cover">
3217                            </picture>
3218                            </a>
3219                            <div class="flex flex-col justify-between">
3220                                <div>
3221                                    <div class="flex justify-between items-center">
3222                                        <span class="my-text-color-gray-1 pt-2 my-font-14-px my-font-roboto-medium uppercase">
3223                                            <a class='my-font-roboto-medium' href='/farming-news/news/53'>NEWS</a>                                        </span>
3224                                        <subscriber-only-badge paper-code="" user-type="" article-type="1" ></subscriber-only-badge>
3225                                    </div>
3226                                    <h2 class="my-font-coranto-bold text-xl md:text-2xl mt-2 component-article-title">
3227                                        <a href="/news/news/meps-reject-emergency-brake-for-eu-carbon-tax-on-fertiliser-imports-933148">
3228                                            MEPs reject emergency brake for EU carbon tax on fertiliser imports                                        </a>
3229                                    </h2>
3230                                </div>
3231                            </div>
3232                        </article>
3233                </div>
3234
3235                <div class="sm:w-full desktop-image-container   mt-4 pt-1 border-t border-gray-300 md:border-t-0 md:mt-0 md:pt-0 md:pr-5">
3236                        <article class="news-item flex flex-col h-full">
3237                            <a href="/news/news/enough-money-in-food-chain-to-pass-more-back-to-farmers-kenny-932985">
3238                            <picture class="hidden md:block">
3239                                <source media="(min-width: 1024px)" srcset="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/932/985/2610115-932985.jpg">
3240                                <img src="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/932/985/2610115-932985.jpg" alt="Enough money in food chain to pass more back to farmers - Kenny" class="w-full h-[170px] object-cover">
3241                            </picture>
3242                            </a>
3243                            <div class="flex flex-col justify-between">
3244                                <div>
3245                                    <div class="flex justify-between items-center">
3246                                        <span class="my-text-color-gray-1 pt-2 my-font-14-px my-font-roboto-medium uppercase">
3247                                            <a class='my-font-roboto-medium' href='/farming-news/news/53'>NEWS</a>                                        </span>
3248                                        <subscriber-only-badge paper-code="" user-type="" article-type="2" ></subscriber-only-badge>
3249                                    </div>
3250                                    <h2 class="my-font-coranto-bold text-xl md:text-2xl mt-2 component-article-title">
3251                                        <a href="/news/news/enough-money-in-food-chain-to-pass-more-back-to-farmers-kenny-932985">
3252                                            Enough money in food chain to pass more back to farmers - Kenny                                        </a>
3253                                    </h2>
3254                                </div>
3255                            </div>
3256                        </article>
3257                </div>
3258            </div>
3259        </div>
3260
3261        
3262    </div>        
3263</main></div>
3264
3265
3266
3267
3268
3269
3270  <div class="position3C w-full md:w-3/12">
3271
3272
3273
3274			                    							
3275
3276
3277
3278            <div class="news-item pt-4 md:pt-0 border-t border-gray-300 md:border-t-0 md:border-gray-300-0 md:pl-2">
3279                <h2 class="flex items-center space-x-2">
3280                    <div class="my-red-square my-main-bg-color"></div>
3281                    <span class="my-text-color-gray-1 text-sm my-font-roboto-medium">MOST READ STORIES</span>
3282                </h2>
3283                <div class="mt-3">
3284                    <div class="flex items-center pb-[0.5rem]">
3285                        <span class="text-gray-400 text-4xl font-bold self-start my-font-coranto-bold text-[2.1875rem]">1</span>                        
3286                        <a href="/news/news/almost-60-of-farmers-opposed-to-planned-abolition-of-entitlements-933419" class="my-font-coranto-2-headline-regular">    
3287                            <p class="text-base ml-2 most-read--article-title">Almost 60% of farmers opposed to planned abolition of entitlements</p>
3288                        </a>
3289                    </div>
3290                    <div class="flex items-center border-t pb-[0.5rem] pt-[0.5rem]">
3291                        <span class="text-gray-400 text-4xl font-bold self-start my-font-coranto-bold text-[2.1875rem]">2</span>                        
3292                        <a href="/high-court-dismisses-challenge-to-442-acre-cork-solar-farm-933831" class="my-font-coranto-2-headline-regular">
3293                            <p class="text-base ml-2 most-read--article-title">High Court dismisses challenge to 442-acre Cork solar farm</p>
3294                        </a>
3295                    </div>
3296                    <div class="flex items-center  border-t pb-[0.5rem] pt-[0.5rem]">
3297                        <span class="text-gray-400 text-4xl font-bold self-start my-font-coranto-bold text-[2.1875rem]">3</span>                        
3298                        <a href="/news/news/new-farmer-funds-and-extra-scheme-places-promised-as-nature-plan-drafted-933341" class="my-font-coranto-2-headline-regular">
3299                            <p class="text-base ml-2 most-read--article-title">New farmer funds and extra scheme places promised as nature plan drafted</p>
3300                        </a>
3301                    </div>
3302                    <div class="flex items-center  border-t pb-[0.5rem] pt-[0.5rem]">
3303                        <span class="text-gray-400 text-4xl font-bold self-start my-font-coranto-bold text-[2.1875rem]">4</span>                        
3304                        <a href="/wexford-farmland-makes-29-000-acre-933938" class="my-font-coranto-2-headline-regular">
3305                            <p class="text-base ml-2 most-read--article-title">Wexford farmland makes €29,000/acre</p>
3306                        </a>
3307                    </div>
3308                    <div class="flex items-center  border-t  pt-[0.5rem]">
3309                        <span class="text-gray-400 text-4xl font-bold self-start my-font-coranto-bold text-[2.1875rem]">5</span>                        
3310                        <a href="/news/news/fuel-support-scheme-extended-for-farmers-as-ifa-demands-immediate-payment-934167" class="my-font-coranto-2-headline-regular">
3311                            <p class="text-base ml-2  most-read--article-title">Fuel support scheme extended for farmers as IFA demands immediate payment</p>
3312                        </a>
3313                    </div>
3314                </div>
3315            </div> 
3316
3317
3318
3319
3320
3321
3322		                    <div id="article-farmersmarket-embed-code" class="col-md-3 no-lr-padding-col pt-4" data-swiftype-index="false" style="margin-top: -10px; margin-bottom: -75px;" > <!-- style="margin-top: 190px" -->
3323		                    	<style type="text/css">
3324		                    		.container__sm {
3325		                    			padding-left: 0px !important;
3326		                    			padding-right: 0px !important;
3327		                    		}
3328		                    	</style>
3329		                    	
3330			                    <div class="component-container"> 
3331			                    					                    						                    		<object id="farmersmarket-embed-code" data="/farmersmarket_embed/farmersmarket-embed-code-by-category.php" frameborder="0" style="width: 100%;width: 112%; height: 700px; margin-left: -22px;" type="text/html"> </object>
3332													</div>		                    	
3333		                    </div>
3334
3335
3336
3337
3338		                    <div class="mt-8"><!-- hidden md:block -->
3339
3340
3341
3342							<div class="gadvertisementheader  px-2 py-1">
3343		                        <div class="mx-auto text-center">
3344	                                <span class=" my-font-roboto-regular text-[0.625rem] my-text-color-gray-1 text-center">ADVERTISEMENT</span> 
3345			                    	
3346
3347<div class='table-center'>
3348
3349
3350<!-- /144848334/new2025-articlepage-desktop-stickysidebar-300x250 -->
3351<div id='div-gpt-ad-1753367278366-0' style='min-width: 300px; min-height: 250px;'>
3352  
3352<script>
3353    googletag.cmd.push(function() { googletag.display('div-gpt-ad-1753367278366-0'); });
3354  </script>
3354
3355</div>
3356
3357</div>
3358
3359			                    </div>
3360			                </div>    	
3361
3362
3363
3364
3365
3366		                    </div>
3367
3368
3369
3370  </div>
3371</div>
3372<!-- line 3 -->
3373
3374
3375<!-- line 4 -->
3376<div class="line4 flex flex flex-wrap order-4">
3377  <div class=" text-white text-center py-2 mx-auto">		                        
3378
3379  	<div class="hidden md:block" >
3380		            
3381
3382
3383
3384<div class='table-center gadvertisementheader px-2 py-1'>
3385	<div class='my-font-roboto-regular text-[0.625rem] my-text-color-gray-1 text-center w-full'>ADVERTISEMENT</div>
3386 	
3387
3388<div class='table-center'>
3389
3390
3391<!-- /144848334/new2025-articlepage-desktop-bannerunderarticle-970x250 -->
3392<div id='div-gpt-ad-1753367222147-0' style='min-width: 970px; min-height: 250px;'>
3393  
3393<script>
3394    googletag.cmd.push(function() { googletag.display('div-gpt-ad-1753367222147-0'); });
3395  </script>
3395
3396</div>
3397
3398
3399</div>
3400
3401</div>
3402
3403
3404		            
3405		            
3406
3407
3408
3409	    </div>
3410	</div>
3411</div>
3412<!-- line 4 -->
3413
3414
3415
3416<!-- line 5 related stories  desktop-->
3417
3418
3419<div class='hidden md:block line-5 flex flex-wrap order-5 data-swiftype-index='false''><!-- component related-stories.php -->
3420<main class="container w-full md:max-w-[1280px] mx-auto   pr-2 pl-2 md:pr-4 md:pl-4 md:pr-0 md:pl-0 mt-8 pb-2 bg-white">
3421    <div class="grid grid-cols-1 md:grid-cols-4 md:gap-3 border-t-4 border-gray-300  pt-4 md:pt-4">
3422
3423        <div class="col-span-4 "> <!--Div A1-->
3424            <div class="section-title">
3425                <article class="news-item flex flex-col"> <!--  h-full -->
3426                <h2 class="flex space-x-2">
3427                    <div class="my-red-square my-main-bg-color"></div>
3428                    <span class="my-text-color-gray-1 text-sm my-font-roboto-medium pb-2 uppercase"><a href="#">Related Stories</a> <span class="my-main-color">»</span></span>
3429                </h2>
3430                </article>
3431            </div>
3432
3433            <div class="grid grid-cols-1 md:grid-cols-4 md:gap-8">
3434
3435                <!-- news 1 -->
3436                <div class="md:mb-0 sm:w-full md-border-right md:pr-3 desktop-image-container">
3437                    <article class="news-item flex flex-col h-full">
3438
3439                        <a href="/beef/management/beef-management-closing-paddocks-nutrient-application-and-ration-composition-933895">
3440                            <picture>
3441                                <source media="(min-width: 0px)" srcset="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/933/895/2613580-933895.jpg">
3442                                <img src="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/933/895/2613580-933895.jpg" alt="Beef management: closing paddocks, nutrient application and ration composition " class="w-full h-[170px] object-cover">
3443                            </picture>
3444                        </a>
3445
3446                        <div class="flex flex-col justify-between">
3447                            <div>
3448                                <div class="flex justify-between items-center">
3449                                    <span class="my-text-color-gray-1 pt-2 my-font-14-px my-font-roboto-medium uppercase">
3450                                        <a class='my-font-roboto-medium' href='/farming-news/beef/54'>BEEF</a>                                    </span>                                         
3451                                    <a href='/subscribe.php' target='_blank' class='ifj-padlock'><div class='p-0.5 w-fit'><img src='https://d3mdtxxgfz6upn.cloudfront.net/images/padlock-green.png' class='h-3 min-w-[0.625rem]'></div></a>                                </div>
3452                                <h2 class="my-font-coranto-bold text-xl md:text-2xl mt-2 component-article-title">                                        
3453                                    <a href="/beef/management/beef-management-closing-paddocks-nutrient-application-and-ration-composition-933895">    
3454                                        Beef management: closing paddocks, nutrient application and ration composition                                     </a>
3455                                </h2>
3456                            </div>
3457                        </div>
3458                    </article>
3459                </div>
3460
3461                    <!-- news 2 -->
3462                    <div class="sm:w-full md-border-right md:pr-3 desktop-image-container   mt-4 pt-1 border-t border-gray-300 md:border-t-0 md:mt-0 md:pt-0">
3463                        <article class="news-item flex flex-col h-full">                            
3464                            <a href="/dairy/management/dairy-management-wintering-options-fertiliser-and-slurry-deadlines-933489">    
3465                            <picture class="hidden md:block">
3466                                    <source media="(min-width: 1024px)" srcset="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/933/489/2613519-933489.jpg">
3467                                    <img src="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/933/489/2613519-933489.jpg" alt="Dairy Management: wintering options, fertiliser and slurry deadlines" class="w-full h-[170px] object-cover">
3468                            </picture>
3469                            </a>
3470
3471                            <div class="flex flex-col justify-between">
3472                                <div>
3473                                    <div class="flex justify-between items-center">
3474                                        <span class="my-text-color-gray-1 pt-2 my-font-14-px my-font-roboto-medium uppercase">
3475                                            <a class='my-font-roboto-medium' href='/farming-news/dairy/55'>DAIRY</a>                                        </span>
3476                                        <subscriber-only-badge paper-code="" user-type="" article-type="0" ></subscriber-only-badge>
3477                                    </div>
3478                                    <h2 class="my-font-coranto-bold text-xl md:text-2xl mt-2 component-article-title">                                        
3479                                        <a href="/dairy/management/dairy-management-wintering-options-fertiliser-and-slurry-deadlines-933489">
3480                                            Dairy Management: wintering options, fertiliser and slurry deadlines                                        </a>
3481                                    </h2>
3482                                </div>
3483                            </div>
3484                        </article>
3485                    </div>
3486
3487                <!-- news 3 -->
3488                
3489
3490
3491				<div class="sm:w-full md-border-right md:pr-3 desktop-image-container   mt-4 pt-1 border-t border-gray-300 md:border-t-0 md:mt-0 md:pt-0">
3492                        <article class="news-item flex flex-col h-full">
3493                            <a href="/news/news/meps-reject-emergency-brake-for-eu-carbon-tax-on-fertiliser-imports-933148">
3494                            <picture class="hidden md:block">
3495                                <source media="(min-width: 1024px)" srcset="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/933/148/2610465-933148.jpg">
3496                                <img src="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/933/148/2610465-933148.jpg" alt="MEPs reject emergency brake for EU carbon tax on fertiliser imports" class="w-full h-[170px] object-cover">
3497                            </picture>
3498                            </a>
3499                            <div class="flex flex-col justify-between">
3500                                <div>
3501                                    <div class="flex justify-between items-center">
3502                                        <span class="my-text-color-gray-1 pt-2 my-font-14-px my-font-roboto-medium uppercase">
3503                                            <a class='my-font-roboto-medium' href='/farming-news/news/53'>NEWS</a>                                        </span>
3504                                        <subscriber-only-badge paper-code="" user-type="" article-type="1" ></subscriber-only-badge>
3505                                    </div>
3506                                    <h2 class="my-font-coranto-bold text-xl md:text-2xl mt-2 component-article-title">
3507                                        <a href="/news/news/meps-reject-emergency-brake-for-eu-carbon-tax-on-fertiliser-imports-933148">
3508                                            MEPs reject emergency brake for EU carbon tax on fertiliser imports                                        </a>
3509                                    </h2>
3510                                </div>
3511                            </div>
3512                        </article>
3513                </div>
3514
3515                <div class="sm:w-full desktop-image-container   mt-4 pt-1 border-t border-gray-300 md:border-t-0 md:mt-0 md:pt-0 md:pr-5">
3516                        <article class="news-item flex flex-col h-full">
3517                            <a href="/news/news/enough-money-in-food-chain-to-pass-more-back-to-farmers-kenny-932985">
3518                            <picture class="hidden md:block">
3519                                <source media="(min-width: 1024px)" srcset="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/932/985/2610115-932985.jpg">
3520                                <img src="https://s3-eu-west-1.amazonaws.com/ifj/WEBFILES/000/932/985/2610115-932985.jpg" alt="Enough money in food chain to pass more back to farmers - Kenny" class="w-full h-[170px] object-cover">
3521                            </picture>
3522                            </a>
3523                            <div class="flex flex-col justify-between">
3524                                <div>
3525                                    <div class="flex justify-between items-center">
3526                                        <span class="my-text-color-gray-1 pt-2 my-font-14-px my-font-roboto-medium uppercase">
3527                                            <a class='my-font-roboto-medium' href='/farming-news/news/53'>NEWS</a>                                        </span>
3528                                        <subscriber-only-badge paper-code="" user-type="" article-type="2" ></subscriber-only-badge>
3529                                    </div>
3530                                    <h2 class="my-font-coranto-bold text-xl md:text-2xl mt-2 component-article-title">
3531                                        <a href="/news/news/enough-money-in-food-chain-to-pass-more-back-to-farmers-kenny-932985">
3532                                            Enough money in food chain to pass more back to farmers - Kenny                                        </a>
3533                                    </h2>
3534                                </div>
3535                            </div>
3536                        </article>
3537                </div>
3538            </div>
3539        </div>
3540
3541        
3542    </div>        
3543</main></div>
3544
3545
3546
3547
3548
3549</main>
3550<!-- body tailwind ends -->
3551<!-- body tailwind ends -->
3552<!-- body tailwind ends -->
3553<!-- body tailwind ends -->
3554<!-- body tailwind ends -->
3555
3556
3557
3558        <input style="display:none" id="offset" type="text" value="1" />
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569		
3570
3571    <style>
3572        /* Estilo para mobile */
3573        @media (max-width: 767px) {
3574            .footer-category {
3575                position: relative;
3576                padding: 10px 0;
3577                border-bottom: 1px solid #ccc;
3578                cursor: pointer;
3579            }
3580            .footer-category.active {
3581                border-bottom: none; /* Remove a linha quando a categoria está expandida */
3582                padding-bottom: 0px;
3583            }
3584            .footer-category::after {
3585                content: '\25BC'; /* Seta para baixo */
3586                position: absolute;
3587                right: 0;
3588                top: 50%;
3589                transform: translateY(-50%);
3590                font-size: 0.575rem;
3591                color: #fff;
3592            }
3593            .footer-category.active::after {
3594                content: '\25B2'; /* Seta para cima */
3595            }
3596            .footer-dropdown {
3597                display: none;
3598            }
3599            .footer-dropdown.active {
3600                display: block;
3601            }
3602            .access-channel {
3603                color: #fff; /* Cor branca para o item "Access this channel" */
3604            }
3605
3606            /* Itens menores no mobile */
3607            .footer-small-links {
3608                display: grid;
3609                grid-template-columns: 1fr 1fr;
3610                grid-column-gap: 20px; /* Espaço entre as colunas */
3611                grid-row-gap: 10px; /* Espaço entre as linhas */
3612                padding-top: 20px;
3613                margin: 0 auto; /* Centralizar o conteúdo */
3614                max-width: 320px; /* Limitar a largura para centralizar */
3615            }
3616            .footer-small-links a {
3617                text-align: left;
3618                color: #ccc; /* Cor cinza claro */
3619                font-size: 12px;
3620            }
3621            .footer-small-links .footer-last-item {
3622                grid-column: 1 / -1; /* Ocupa toda a largura */
3623                text-align: center;
3624                padding-top: 10px;
3625            }
3626        }
3627
3628        /* Estilo para desktop (min-width: 768px) */
3629        @media (min-width: 768px) {
3630            .footer-dropdown {
3631                display: block !important; /* Sempre mostrar os sub-itens no desktop */
3632            }
3633            .footer-category {
3634                padding: 0; /* Remover padding e borda no desktop */
3635                border: none;
3636                cursor: default;
3637            }
3638            .footer-category::after {
3639                content: none; /* Remover a seta no desktop */
3640            }
3641            .access-channel {
3642                display: none; /* Não exibir "Access this channel" no desktop */
3643            }
3644
3645            /* Itens menores no desktop */
3646            .footer-small-links {
3647                display: flex;
3648                flex-wrap: wrap;
3649                justify-content: flex-start; /* Alinhar à esquerda */
3650                padding-top: 20px;
3651            }
3652            .footer-small-links a {
3653                margin-right: 15px;
3654                color: #ccc; /* Cor cinza claro */
3655                font-size: 12px;
3656                text-decoration: none;
3657            }
3658            .footer-small-links .footer-last-item {
3659                margin-left: auto;
3660                text-align: right;
3661            }
3662        }
3663    </style>
3664
3665
3666
3667
3668
3669
3670
3671
3672<div class="my-custom-bg-gray my-border-top mt-4 h-fit">
3673    <div class="container  w-full md:max-w-[1280px] mx-auto">
3674        <!-- Price Bar -->
3675        <div class="flex justify-start items-center h-full">
3676
3677            <footer class="my-custom-bg-gray text-white py-2 md:py-8 w-full md:max-w-[1280px]">
3678                <div class="container mx-auto px-4 md:px-0">
3679                    <div class="flex flex-wrap -mx-4">
3680                                                    <div class="w-full sm:w-1/2 md:w-1/3 lg:w-1/5 px-4 md:mb-4">
3681
3682                                
3683
3684
3685
3686                                <a href="#" class="text-sm my-font-roboto-medium footer-category flex items-center">
3687                                    <div class="my-red-square-8-8 my-main-bg-color mr-2 mt
3687-5 mb-5 md:mt-0 md:mb-0"></div> NEWS                                    <!-- mt-4 mb-4 md:mt-0 md:mb-0 setup the footer height -->                                        
3688                                </a>
3689
3690                                
3691
3692
3693
3694
3695
3696                                <ul class="footer-dropdown md:mt-2 mb-6 md:mb-0">
3697                                                                                                                <li><a href="/latestheadlines" class="block py-3 text-sm">Latest headlines</a></li>
3698                                                                            <li><a href="/farm/schemes/282" class="block py-3 text-sm">Schemes</a></li>
3699                                                                            <li><a href="/farm/industry-opinion/279" class="block py-3 text-sm">Viewpoints</a></li>
3700                                                                            <li><a href="/farming-news/northern-ireland/321" class="block py-3 text-sm">Northern Ireland</a></li>
3701                                                                            <li><a href="/farm/farmer-writes/281" class="block py-3 text-sm">Farmer Writes</a></li>
3702                                                                            <li><a href="/farm/the-dealer/280" class="block py-3 text-sm">The Dealer</a></li>
3703                                                                            <li><a href="/farm/advertisersanouncements/595" class="block py-3 text-sm">Sponsored</a></li>
3704                                                                    </ul>
3705                            </div>
3706                                                    <div class="w-full sm:w-1/2 md:w-1/3 lg:w-1/5 px-4 md:mb-4">
3707
3708                                
3709
3710
3711
3712                                <a href="#" class="text-sm my-font-roboto-medium footer-category flex items-center">
3713                                    <div class="my-red-square-8-8 my-main-bg-color mr-2 mt-5 mb-5 md:mt-0 md:mb-0"></div> LIVESTOCK                                    <!-- mt-4 mb-4 md:mt-0 md:mb-0 setup the footer height -->                                        
3714                                </a>
3715
3716                                
3717
3718
3719
3720
3721
3722                                <ul class="footer-dropdown md:mt-2 mb-6 md:mb-0">
3723                                                                                                                <li><a href="/tag/Mart-reports" class="block py-3 text-sm">Mart reports</a></li>
3724                                                                            <li><a href="/farming-news/beef/54" class="block py-3 text-sm">Beef</a></li>
3725                                                                            <li><a href="/farming-news/dairy/55" class="block py-3 text-sm">Dairy</a></li>
3726                                                                            <li><a href="/farming-news/sheep/56" class="block py-3 text-sm">Sheep</a></li>
3727                                                                            <li><a href="/farm/pedigree/320" class="block py-3 text-sm">Pedigree</a></li>
3728                                                                            <li><a href="/tag/Animal-health" class="block py-3 text-sm">Animal health</a></li>
3729                                                                    </ul>
3730                            </div>
3731                                                    <div class="w-full sm:w-1/2 md:w-1/3 lg:w-1/5 px-4 md:mb-4">
3732
3733                                
3734
3735
3736
3737                                <a href="#" class="text-sm my-font-roboto-medium footer-category flex items-center">
3738                                    <div class="my-red-square-8-8 my-main-bg-color mr-2 mt-5 mb-5 md:mt-0 md:mb-0"></div> SECTORS                                    <!-- mt-4 mb-4 md:mt-0 md:mb-0 setup the footer height -->                                        
3739                                </a>
3740
3741                                
3742
3743
3744
3745
3746
3747                                <ul class="footer-dropdown md:mt-2 mb-6 md:mb-0">
3748                                                                                                                <li><a href="/farming-news/agribusiness/58" class="block py-3 text-sm">Agribusiness</a></li>
3749                                                                            <li><a href="/farm/tillage/57" class="block py-3 text-sm">Tillage</a></li>
3750                                                                            <li><a href="/farming-news/machinery/59" class="block py-3 text-sm">Machinery</a></li>
3751                                                                            <li><a href="/tag/Renewables" class="block py-3 text-sm">Renewables</a></li>
3752                                                                            <li><a href="/farm/property/76" class="block py-3 text-sm">Property</a></li>
3753                                                                            <li><a href="/farm/buildings/315" class="block py-3 text-sm">Buildings</a></li>
3754                                                                            <li><a href="/tag/Climate-and-environment" class="block py-3 text-sm">Climate &amp; environment</a></li>
3755                                                                            <li><a href="/farm/forestry/316" class="block py-3 text-sm">Forestry</a></li>
3756                                                                    </ul>
3757                            </div>
3758                                                    <div class="w-full sm:w-1/2 md:w-1/3 lg:w-1/5 px-4 md:mb-4">
3759
3760                                
3761
3762
3763
3764                                <a href="#" class="text-sm my-font-roboto-medium footer-category flex items-center">
3765                                    <div class="my-red-square-8-8 my-main-bg-color mr-2 mt
3765-5 mb-5 md:mt-0 md:mb-0"></div> IRISH COUNTRY LIVING                                    <!-- mt-4 mb-4 md:mt-0 md:mb-0 setup the footer height -->                                        
3766                                </a>
3767
3768                                
3769
3770
3771
3772
3773
3774                                <ul class="footer-dropdown md:mt-2 mb-6 md:mb-0">
3775                                                                                                                <li><a href="/farm/life/70" class="block py-3 text-sm">Features</a></li>
3776                                                                            <li><a href="/farm/comment/74" class="block py-3 text-sm">Columns</a></li>
3777                                                                            <li><a href="/farm/life/70" class="block py-3 text-sm">Lifestyle</a></li>
3778                                                                    </ul>
3779                            </div>
3780                                                    <div class="w-full sm:w-1/2 md:w-1/3 lg:w-1/5 px-4 md:mb-4">
3781
3782                                
3783
3784
3785
3786                                <a href="#" class="text-sm my-font-roboto-medium footer-category flex items-center">
3787                                    <div class="my-red-square-8-8 my-main-bg-color mr-2 mt-5 mb-5 md:mt-0 md:mb-0"></div> FARM PROGRAMMES                                    <!-- mt-4 mb-4 md:mt-0 md:mb-0 setup the footer height -->                                        
3788                                </a>
3789
3790                                
3791
3792
3793
3794
3795
3796                                <ul class="footer-dropdown md:mt-2 mb-6 md:mb-0">
3797                                                                                                                <li><a href="/farm/tullamore-farm/642" class="block py-3 text-sm">Tullamore Farm</a></li>
3798                                                                            <li><a href="/farmprogrammes/footprintfarmers/9999641" class="block py-3 text-sm">Footprint Farmers</a></li>
3799                                                                    </ul>
3800                            </div>
3801                                                    <div class="w-full sm:w-1/2 md:w-1/3 lg:w-1/5 px-4 md:mb-4">
3802
3803                                
3804
3805
3806
3807                                <a href="#" class="text-sm my-font-roboto-medium footer-category flex items-center">
3808                                    <div class="my-red-square-8-8 my-main-bg-color mr-2 mt-5 mb-5 md:mt-0 md:mb-0"></div> HUBS                                    <!-- mt-4 mb-4 md:mt-0 md:mb-0 setup the footer height -->                                        
3809                                </a>
3810
3811                                
3812
3813
3814
3815
3816
3817                                <ul class="footer-dropdown md:mt-2 mb-6 md:mb-0">
3818                                                                                                                <li><a href="/hub/knowledge" class="block py-3 text-sm">Knowledge Hub</a></li>
3819                                                                            <li><a href="/hub/schools" class="block py-3 text-sm">Schools Hub</a></li>
3820                                                                            <li><a href="/hub/young-stock" class="block py-3 text-sm">Young Stock Hub</a></li>
3821                                                                            <li><a href="/videohub" class="block py-3 text-sm">Video Hub</a></li>
3822                                                                    </ul>
3823                            </div>
3824                                                    <div class="w-full sm:w-1/2 md:w-1/3 lg:w-1/5 px-4 md:mb-4">
3825
3826                                
3827
3828
3829
3830                                <a href="#" class="text-sm my-font-roboto-medium footer-category flex items-center">
3831                                    <div class="my-red-square-8-8 my-main-bg-color mr-2 mt-5 mb-5 md:mt-0 md:mb-0"></div> BUSINESS OF FARMING                                    <!-- mt-4 mb-4 md:mt-0 md:mb-0 setup the footer height -->                                        
3832                                </a>
3833
3834                                
3835
3836
3837
3838
3839
3840                                <ul class="footer-dropdown md:mt-2 mb-6 md:mb-0">
3841                                                                                                                <li>
3841<a href="/martwatch" class="block py-3 text-sm">Martwatch</a></li>
3842                                                                            <li><a href="/tag/Business-of-Farming" class="block py-3 text-sm">Mart &amp; Factory Prices</a></li>
3843                                                                    </ul>
3844                            </div>
3845                                                    <div class="w-full sm:w-1/2 md:w-1/3 lg:w-1/5 px-4 md:mb-4">
3846
3847                                
3848
3849
3850
3851                                <a href="#" class="text-sm my-font-roboto-medium footer-category flex items-center">
3852                                    <div class="my-red-square-8-8 my-main-bg-color mr-2 mt-5 mb-5 md:mt-0 md:mb-0"></div> MULTIMEDIA                                    <!-- mt-4 mb-4 md:mt-0 md:mb-0 setup the footer height -->                                        
3853                                </a>
3854
3855                                
3856
3857
3858
3859
3860
3861                                <ul class="footer-dropdown md:mt-2 mb-6 md:mb-0">
3862                                                                                                                <li><a href="/my-podcasts" class="block py-3 text-sm">Podcasts</a></li>
3863                                                                            <li><a href="/farm/video/651" class="block py-3 text-sm">Videos</a></li>
3864                                                                            <li><a href="/tag/In-pictures" class="block py-3 text-sm">Photography</a></li>
3865                                                                    </ul>
3866                            </div>
3867                                            </div>
3868                    <div class="footer-small-links text-gray-400 text-xs mt-8">
3869
3870                        <a href="/information/contact-us/150935">Contact us</a>
3871                        <a href="/mediakit.php">Advertise with us</a>
3872                        <a href="/information/company-information/150940">Company information</a>
3873                        <a href="/information/careers/152746">Career opportunities</a>
3874                        <a href="/information/privacy-policy/150948">Privacy statement</a>
3875                        <a href="/information/terms-of-service/150950">Terms of service</a>
3876                        <a href="/information/commenting-policy/155484">Commenting policy</a>
3877                        <a class="ot-sdk-show-settings">Cookie Settings</a>
3878                        <a href="https://s3-eu-west-1.amazonaws.com/ifj/pdf/The-Agricultural-Trust--Gender-Pay-Gap-Report.pdf">Gender Pay Gap report</a>
3879                        <a href="/ttpa/">TTPA</a>
3880                        <div class="footer-last-item">© Irish Farmers Journal 2026</div>
3881
3882
3883                    </div>
3884                </div>
3885            </footer>
3886
3887        </div>
3888    </div>
3889</div>
3890
3891
3892
3893
3894
3895    
3895<script>
3896        // Script para gerenciar a expansão dos sub-itens no mobile
3897        $(document).ready(function() {
3898            $('.footer-category').click(function() {
3899                if (window.innerWidth < 768) { // mobile
3900                    e.preventDefault(); 
3901                    $(this).next('.footer-dropdown').toggleClass('active');
3902                    $(this).toggleClass('active'); // Alterna a seta para cima/baixo e a linha
3903                }
3904            });
3905        });
3906
3907
3908
3909
3910
3911
3912
3913
3914$(document).ready(function() {
3915    // Remover href="#" em mobile para evitar problemas de scroll
3916    if (window.innerWidth < 768) {
3917        $('.footer-category').each(function() {
3918            $(this).attr('href', '#');
3919            $(this).off('click').on('click', function(e) {
3920                e.preventDefault(); // Previne o comportamento padrão do link
3921                $(this).next('.footer-dropdown').toggleClass('active');
3922                $(this).toggleClass('active'); // Alterna a seta para cima/baixo e a linha
3923            });
3924        });
3925    }
3926});
3927
3928
3929    </script>
3929
3930
3931
3932		
3932<script src="https://www.farmersjournal.ie/2024-files/js/main.js" defer></script>
vendor: 2 bytes, line 3932
3932
3933<script src="https://www.farmersjournal.ie/js/js.cookie.js" defer></script>
vendor: 2 bytes, line 3933
3933
3934<script src="https://www.farmersjournal.ie/js/ifj.js" defer></script>
vendor: 2 bytes, line 3934
3934
3935<script src="https://www.farmersjournal.ie/js/crypto.js" defer></script>
3935
3936
3937
3938<script>
3939  function isElementTrulyEmpty(el) {
3940    const tag = el.tagName.toLowerCase();
3941
3942    // Ignore 
3942<script>
3943    if (tag === 'script') return true;
3944
3945    // Ignore <div> with empty content (only spaces or nothing)
3946    if (tag === 'div') {
3947      const text = el.textContent.trim();
3948      const noRealChildren = Array.from(el.children).length === 0;
3949      return text === '' && noRealChildren;
3950    }
3951
3952    return false; // any other element is considered "real"
3953  }
3954
3955  function isTableCenterEmpty(tableCenterEl) {
3956    return Array.from(tableCenterEl.querySelectorAll(':scope > *')).every(child => {
3957      // Check direct children of .table-center
3958      return isElementTrulyEmpty(child) ||
3959        Array.from(child.children).every(grandchild => isElementTrulyEmpty(grandchild));
3960    });
3961  }
3962
3963  /*function hideEmptyAdContainers() {
3964    document.querySelectorAll('.table-center').forEach(function (el) {
3965      if (isTableCenterEmpty(el)) {
3966        const container = el.closest('.container');
3967        if (container && !container.classList.contains('hidden')) {
3968          container.classList.add('hidden');
3969        }
3970      }
3971    });
3972  }
3973
3974  window.addEventListener('load', function () {
3975    hideEmptyAdContainers();
3976
3977    const observer = new MutationObserver(hideEmptyAdContainers);
3978
3979    observer.observe(document.body, {
3980      childList: true,
3981      subtree: true
3982    });
3983
3984    // Fix for ads that load way later
3985    for (let i = 1; i <= 10; i++) {
3986      setTimeout(hideEmptyAdContainers, i * 500);
3987    }
3988  });*/
3989</script>
3989
3990
3991
3992
3993
3994
3995
3996		
3997
3998
3999
4000
4001
4002<!-- Login Modal -->
4003<div id="loginModal" class="fixed inset-0 bg-gray-800 bg-opacity-50 flex items-center justify-center hidden" style="z-index: 100;"> <!-- Classe 'hidden' inicialmente -->
4004  <div class="bg-red-600 p-6 rounded-lg shadow-lg relative w-96">
4005    
4006    <button class="absolute top-2 right-2 text-white hover:text-gray-200 text-lg scale-150 p-2" onclick="closeLoginModal()">
4007        <span class="material-icons">close</span>
4008    </button>
4009    <h2 class="text-white my-font-coranto-bold text-3xl md:text-5xl font-bold mb-4 mt-4 text-center">Sign in</h2>
4010    
4011    <form>
4012      <div class="mb-4">
4013        <label for="email" class="block text-white text-md mb-2">Email address</label>
4014        <input id="email-main" type="email" class="w-full px-3 py-2 rounded bg-gray-100 border border-gray-300 focus:outline-none focus:ring-2 focus:ring-yellow-500" placeholder="Enter your email">
4015      </div>
4016      
4017      <div class="mb-6">
4018        <label for="password" class="block text-white text-md mb-2">Password</label>
4019        <div class="relative EYE_PSW__password-wrapper">    
4020            <input id="password-main" type="password" class="w-full px-3 py-2 rounded bg-gray-100 border border-gray-300 focus:outline-none focus:ring-2 focus:ring-yellow-500 EYE_PSW__password-toggle-input" placeholder="Enter your password">
4021      <button
4022        type="button"
4023        class="absolute inset-y-0 right-0 flex items-center pr-3 text-gray-400 hover:text-gray-600 EYE_PSW__toggle-password-visibility"
4024        tabindex="-1"
4025      >
4026        <svg class="EYE_PSW__eye-icon h-5 w-5" xmlns="http://www.w3.org/2000/svg" fill="none"
4027          viewBox="0 0 24 24" stroke="currentColor">
4028          <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
4029            d="M15 12a3 3 0 11-6 0 3 3 0 016 0z" />
4030          <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
4031            d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z" />
4032        </svg>
4033      </button>
4034        </div>
4035      </div>
4036
4037
4038
4039
4040
4041
4042  
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058      <button type="submit" class="w-full bg-teal-500 text-white font-bold py-2 px-4 rounded focus:outline-none login-btn-emailmain text-md">SIGN IN</button>
4059    </form>
4060
4061    <div class="flex justify-between items-center mt-4">
4062      <a href="#" class="text-gray-300 text-white bg-gray-600 font-bold py-1 px-4 rounded reset-password-2024">RESET PASSWORD</a>
4063      <a href="/subscribe.php" class="my-bg-color-yellow-1  text-black font-bold py-1 px-4 rounded">SUBSCRIBE</a>
4064    </div>
4065
4066    <p class="text-gray-300 text-sm mt-4">
4067      If you would like to speak to a member of our team, please call us on <strong>01-4199525</strong>.
4068    </p>
4069  </div>
4070</div>
4071
4072
4073<script>
4074  
4075    function openLoginModal() {
4076        $('#loginModal').removeClass('hidden');
4077        
4078        if ($('#sidebar').css('display') === 'block') {
4079            // Simula um clique no botão de hambúrguer
4080            $('#mobile-hamburger-btn').trigger('click');
4081        }
4082    }
4083
4084
4085
4086  
4087    function closeLoginModal() {
4088        $('#loginModal').addClass('hidden');
4089    }
4090
4091
4092    $(document).on('click', '.link-login-btn-2024', function() {
4093        openLoginModal();
4094    });
4095
4096
4097
4098    $(document).on('click', '.reset-password-2024', function() {
4099        closeLoginModal();
4100        openForgotModal();
4101    });
4102
4103
4104
4105</script>
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115<!-- Reset Password Modal -->
4116<div id="resetPasswordModal" class="fixed inset-0 bg-gray-800 bg-opacity-50 flex items-center justify-center hidden"> <!-- Classe 'hidden' inicialmente -->
4117  <div class="bg-red-600 p-6 rounded-lg shadow-lg relative w-96">
4118    
4119    <button class="absolute top-2 right-2 text-white hover:text-gray-200 text-lg scale-150 p-2" onclick="closeForgotModal()">
4120        <span class="material-icons">close</span>
4121    </button>
4122    <h2 class="text-white my-font-coranto-bold text-3xl md:text-5xl font-bold mb-4 mt-4 text-center">Reset Password</h2>
4123    
4124    <form>
4125      
4126      <div class="mb-6">
4127        <label for="email" class="block text-white text-md mb-2">Please enter your email address and we will send you a link to reset your password</label>
4128        <input id="email-forgot" type="email" class="w-full px-3 py-2 rounded bg-gray-100 border border-gray-300 focus:outline-none focus:ring-2 focus:ring-yellow-500" placeholder="Enter your email">
4129      </div>
4130
4131       <div class="flex justify-center">
4132        <img id="forgotten-password-btn" src="https://d3mdtxxgfz6upn.cloudfront.net/images/btn_circle_right_green.png" class="cursor-pointer">
4133       </div> 
4134    </form>
4135
4136
4137    <p class="text-gray-300 text-sm mt-4">
4138      If you would like to speak to a member of our team, please call us on <strong>01-4199525</strong>.
4139    </p>
4140  </div>
4141</div>
4142
4143<script type="text/javascript">
4144
4145
4146
4147    function openForgotModal() {
4148        $('#resetPasswordModal').removeClass('hidden');
4149        
4150
4151    }
4152
4153
4154
4155  
4156    function closeForgotModal() {
4157        $('#resetPasswordModal').addClass('hidden');
4158    }
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168    
4169            $('#forgotten-password-btn').on('click', function(){
4170                event.preventDefault();
4171
4172                if($('#email-forgot').val() == ""){
4173                    alert("Enter your email")
4174                    $('#email-error').css("display", "block");
4175                    return false;
4176                }
4177
4178
4179
4180
4181
4182
4183                  var email = sanitizeHTMLlogin($('#email-forgot').val());
4184
4185                  //var email = $('#email').val();
4186
4187                  var jstring = 'https://api.farmersjournal.ie/v1/membershipsettings/forgot.php?email=' + email;
4188
4189                    console.log(jstring);
4190                  $.getJSON(jstring, function (data) { 
4191                        
4192                           var registerresponse = data['fjapp'][0]['api'][0]['response'];
4193
4194                           //alert(registerresponse)
4195                           if(registerresponse=='done'){
4196
4197                               /* $('#modalSignInResetPassword').modal('hide');
4198                                $('#modalSignInResetPassword-ok').modal({backdrop: 'static', keyboard: false});*/
4199
4200                                openForgotModalEmailRecognized()
4201
4202
4203                                
4204                                }else{
4205                                /*$('#modalSignInResetPassword').modal('hide');
4206                                $('#modalSignInResetPassword-failed').modal({backdrop: 'static', keyboard: false});*/
4207
4208                                //alert("Email address not recognised")
4209                                openForgotModalEmailNotRecognized()
4210
4211
4212                       }
4213                   });
4214                //}        
4215            });
4216
4217
4218
4219</script>
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228<!-- Reset Password Modal | forgotModalEmailNotRecognized -->
4229<div id="forgotModalEmailNotRecognized" class="fixed inset-0 bg-gray-800 bg-opacity-50 flex items-center justify-center hidden"> <!-- Classe 'hidden' inicialmente -->
4230  <div class="bg-red-600 p-6 rounded-lg shadow-lg relative w-96">
4231    
4232    <button class="absolute top-2 right-2 text-white hover:text-gray-200 text-lg scale-150 p-2" onclick="closeForgotModalEmailNotRecognized()">
4233        <span class="material-icons">close</span>
4234    </button>
4235
4236
4237       <div class="flex justify-center">
4238        <img id="forgotten-password-btn" src="https://d3mdtxxgfz6upn.cloudfront.net/images/icon-black-failed.png" class="cursor-pointer">
4239       </div> 
4240
4241
4242
4243
4244    <h2 class="text-white my-font-coranto-bold text-3xl md:text-5xl font-bold mb-4 mt-4 text-center">Email address not recognised</h2>
4245    
4246
4247      
4248      <div class="mb-6">
4249        <label for="email" class="block text-white text-md mb-2">There is no subscription associated with this email address. To read our subscriber-only content. Please subscribe or use the reader loyalty code.</label>
4250      </div>
4251
4252
4253
4254    <div class="flex justify-between items-center mt-4 text-xs">
4255      <a href="#" class="text-gray-300 text-white bg-teal-500 font-bold py-1 px-4 rounded reset-password-2024" onclick="closeForgotModalEmailNotRecognized()">TRY AGAIN</a>
4256      <a href="#" class="text-gray-300 text-white bg-gray-600 font-bold py-1 px-4 rounded" onclick="openModalRedeemCode()">USE THE CODE</a>
4257      <a href="/subscribe.php" class="my-bg-color-yellow-1  text-black font-bold py-1 px-4 rounded">SUBSCRIBE</a>
4258    </div>
4259
4260    <p class="text-gray-300 text-sm mt-4">
4261      If you would like to speak to a member of our team, please call us on <strong>01-4199525</strong>.
4262    </p>
4263  </div>
4264</div>
4265
4266
4267<script>
4268  
4269    function openForgotModalEmailNotRecognized() {
4270        $('#resetPasswordModal').addClass('hidden');
4271        $('#forgotModalEmailNotRecognized').removeClass('hidden');
4272
4273    }
4274
4275
4276
4277  
4278    function closeForgotModalEmailNotRecognized() {
4279        $('#forgotModalEmailNotRecognized').addClass('hidden');
4280    }
4281</script>
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291<!-- Reset Password Modal | forgotModalEmailRecognized -->
4292<div id="forgotModalEmailRecognized" class="fixed inset-0 bg-gray-800 bg-opacity-50 flex items-center justify-center hidden"> <!-- Classe 'hidden' inicialmente -->
4293  <div class="bg-red-600 p-6 rounded-lg shadow-lg relative w-96">
4294    
4295    <button class="absolute top-2 right-2 text-white hover:text-gray-200 text-lg scale-150 p-2" onclick="closeForgotModalEmailRecognized()">
4296        <span class="material-icons">close</span>
4297    </button>
4298
4299
4300        <h2 class="text-white my-font-coranto-bold text-3xl md:text-5xl font-bold mb-4 mt-4 text-center">Link sent to your email address</h2>
4301
4302
4303        <div class="flex justify-center">
4304         <img id="forgotten-password-btn" src="https://d3mdtxxgfz6upn.cloudfront.net/images/icon-green-ok.png" class="cursor-pointer">
4305        </div>    
4306
4307
4308        <p class="text-gray-300 text-sm mt-4"> We have sent an email to your address. Please click on the link in this email to reset your password. If you can't find it in your inbox,  please check your spam folder. If you can't find the email, please call us on <strong>01-4199525</strong>.
4309        </p>
4310  </div>
4311</div>
4312
4313
4314<script>
4315  
4316    function openForgotModalEmailRecognized() {
4317        $('#resetPasswordModal').addClass('hidden');
4318        $('#forgotModalEmailRecognized').removeClass('hidden');
4319
4320    }
4321
4322
4323
4324  
4325    function closeForgotModalEmailRecognized() {
4326        $('#forgotModalEmailRecognized').addClass('hidden');
4327    }
4328
4329
4330</script>
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339<!-- modalRedeemCode -->
4340
4341<style type="text/css">
4342    
4343.inputRedeemCode {
4344    color: #ffffff;
4345    border-top: 0px;
4346    border-left: 0px;
4347    border-right: 0px;
4348    border-bottom: 2px solid black;
4349    background-color: #da2128;
4350    margin: 2px;
4351    text-align: center;
4352    width: 30px;
4353    outline-color: transparent;
4354    outline-style: none;
4355}
4356
4357</style>
4358
4359
4360<!-- Reset Password Modal | modalRedeemCode -->
4361<div id="modalRedeemCode" class="fixed inset-0 bg-gray-800 bg-opacity-50 flex items-center justify-center hidden"> <!-- Classe 'hidden' inicialmente -->
4362  <div class="bg-red-600 p-6 rounded-lg shadow-lg relative w-[500px]">
4363    
4364    <button class="absolute top-2 right-2 text-white hover:text-gray-200 text-lg scale-150 p-2" onclick="closeModalRedeemCode()">
4365        <span class="material-icons">close</span>
4366    </button>
4367
4368
4369        <div class="flex justify-center">
4370         <img src="https://d3mdtxxgfz6upn.cloudfront.net/images/header-logo.png" class="cursor-pointer">
4371        </div>    
4372
4373        <h2 class="text-white my-font-coranto-bold text-2xl font-bold mb-4 mt-4 text-center">ENTER YOUR LOYALTY CODE:</h2>
4374
4375        <p style="text-align: center; padding:20px" class="smalltitle">                        
4376                            <input class="inputRedeemCode inputRedeemCode_1" id="inputRedeemCode_1" autocomplete="off" type="text" size="3" maxlength="1" name="inputRedeemCode_1" autofocus="">
4377                            <input class="inputRedeemCode inputRedeemCode_2" id="inputRedeemCode_2" autocomplete="off" type="text" size="3" maxlength="1" name="inputRedeemCode_2">
4378                            <input class="inputRedeemCode inputRedeemCode_3" id="inputRedeemCode_3" autocomplete="off" type="text" size="3" maxlength="1" name="inputRedeemCode_3">
4379                            <input class="inputRedeemCode inputRedeemCode_4" id="inputRedeemCode_4" autocomplete="off" type="text" size="3" maxlength="1" name="inputRedeemCode_4">
4380                            <input class="inputRedeemCode inputRedeemCode_5" id="inputRedeemCode_5" autocomplete="off" type="text" size="3" maxlength="1" name="inputRedeemCode_5">
4381                            <input class="inputRedeemCode inputRedeemCode_6" id="inputRedeemCode_6" autocomplete="off" type="text" size="3" maxlength="1" name="inputRedeemCode_6">
4382        </p>
4383
4384
4385        <div class="flex justify-center">
4386            <label class="redeem_code_btn_unlock">
4387                <div class="bg-teal-500 text-white font-bold py-2 px-4 rounded focus:outline-none text-md cursor-pointer unlockbtncde" mtype="modalRedeemCode">UNLOCK</div>
4388            </label>
4389        </div>
4390
4391
4392        <p class="text-gray-300 text-sm mt-4"> The reader loyalty code gives you full access to the site from when you enter it until the following Wednesday at 9pm. Find your unique code on the back page of Irish Country Living every week.
4393        </p>
4394  </div>
4395</div>
4396
4397<script type="text/javascript">
4398    function openModalRedeemCode() {
4399        $('#modalRedeemCode').removeClass('hidden');
4400
4401        closeForgotModalEmailNotRecognized();
4402
4403    }
4404
4405
4406
4407  
4408    function closeModalRedeemCode() {
4409        $('#modalRedeemCode').addClass('hidden');
4410    }
4411
4412
4413
4414
4415            $( document ).ready(function() {
4416
4417
4418                
4419
4420
4421                $(document).keydown(function(e) {//simulate the click on enter press also here
4422                  
4423                    
4424                    if ($("#modalRedeemCode").hasClass('in') && (e.keyCode == 13 || e.which == 13)) {
4425                        //alert("Enter is pressed");
4426                        dounlockbtncde("modalRedeemCode");
4427                    }
4428                    if ($("#modalRedeemCode_Declined").hasClass('in') && (e.keyCode == 13 || e.which == 13)) {
4429                        //alert("Enter is pressed");
4430                        dounlockbtncde("modalRedeemCode_Declined");
4431                    }
4432
4433
4434                    if(  ($("#modalRedeemCode").hasClass('in') && (e.keyCode == 8 || e.which == 8)) || ($("#modalRedeemCode_Declined").hasClass('in') && (e.keyCode == 8 || e.which == 8)) ){
4435
4436                        $("input:focus").val("");
4437                        $("input:focus").prev().focus();
4438                        console.log($("input:focus"));
4439                    }
4440
4441                    
4442
4443
4444                });
4445
4446
4447
4448
4449
4450
4451
4452
4453                    function dounlockbtncde(modalclicked){
4454
4455                        
4456                        if(modalclicked=='modalRedeemCode'){
4457                                        var d1 = $('.inputRedeemCode_1').val();
4458                                        var d2 = $('.inputRedeemCode_2').val();
4459                                        var d3 = $('.inputRedeemCode_3').val();
4460                                        var d4 = $('.inputRedeemCode_4').val();
4461                                        var d5 = $('.inputRedeemCode_5').val();
4462                                        var d6 = $('.inputRedeemCode_6').val();
4463                                        var loyaltycode = d1 + d2 + d3 + d4 + d5 + d6;
4464                        }
4465
4466                        if(modalclicked=='modalRedeemCode_Declined'){
4467                                        var d1 = $('.dinputRedeemCode_1').val();
4468                                        var d2 = $('.dinputRedeemCode_2').val();
4469                                        var d3 = $('.dinputRedeemCode_3').val();
4470                                        var d4 = $('.dinputRedeemCode_4').val();
4471                                        var d5 = $('.dinputRedeemCode_5').val();
4472                                        var d6 = $('.dinputRedeemCode_6').val();
4473                                        var loyaltycode = d1 + d2 + d3 + d4 + d5 + d6;
4474                        }
4475                        
4476                        var jstring = 'https://api.farmersjournal.ie/v1/codecoupon/code_login2019new.php?loyaltycode='+ loyaltycode;
4477                        //alert(loyaltycode); 
4478                        $.getJSON(jstring, function (data) {
4479
4480                            var lytresponse = data.fjapp[0].api[0]["loginresponse"];
4481                            var edsvalue = data.fjapp[0].api[0]["edsvalue"];
4482
4483                            
4484                            if(lytresponse=='decline'){  
4485
4486                                $('#inputRedeemCode_1').val("");
4487                                $('#inputRedeemCode_2').val("");
4488                                $('#inputRedeemCode_3').val("");
4489                                $('#inputRedeemCode_4').val("");
4490                                $('#inputRedeemCode_5').val("");
4491                                $('#inputRedeemCode_6').val("");  
4492
4493                                alert('Declined, try again')
4494/*                                $('#modalRedeemCode').modal('hide');
4495                                $('#modalRedeemCode_Success').modal('hide');
4496                                $('#modalRedeemCode_Declined').modal('show');
4497                                setTimeout(function (){
4498                                    $('#inputRedeemCode_1_Declined').focus();
4499                                }, 1000);
4500
4501                    
4502                                $('#modalSignIn').html(modalSignInHtml);*/
4503                            }
4504
4505                            if(lytresponse=='success'){
4506
4507                                alert('Success!')
4508
4509                                /*$('#modalRedeemCode').modal('hide');
4510                                $('#modalRedeemCode_Declined').modal('hide');
4511                                $('#modalRedeemCode_Success').modal('show');*/
4512
4513                                //alert(edsvalue);
4514                                document.cookie = 'cdl' + "=" + loyaltycode + "; expires=" + edsvalue + "; path=/";
4515                                localStorage. setItem('cdl','usingcode');
4516
4517                                setTimeout(function (){
4518                                  location.reload();
4519                                }, 2000); 
4520                            }            
4521
4522                        });
4523
4524                        
4525                    }
4526        
4527        
4528        
4529                    $( ".unlockbtncde" ).click(function(){
4530                        console.log('clicked');
4531                        var modalclicked = $(this).attr('mtype');
4532                        dounlockbtncde(modalclicked);
4533                    });
4534
4535
4536
4537                
4538                $('.inputRedeemCode').keyup(function(){
4539
4540                    if ($( this ).val() != ""){
4541
4542                        $( this ).next('input').focus();
4543                        this_uppercase = $( this ).val().toUpperCase();
4544                        $( this ).val(this_uppercase);
4545
4546                     }
4547                    
4548                });    
4549
4550            });     
4551
4552</script>
4552     
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569                
4569<script type="text/javascript">
4570            $(function () {
4571
4572
4573
4574				$(".articlerouteliner").click(function(){
4575				    //alert("clicked articlerouter");
4576				    var storyid = $(this).attr("id");
4577				    //alert(storyid);			
4578					$.post("includes/articlerouteliner.php", { storyid: storyid},
4579							function(result){
4580								//alert (result);
4581								var permlink = result;
4582								//var url = "http://www.farmersjournal.ie/" + permlink + "-" + storyid + "/";
4583								var url = "http://www.farmersjournal.ie/" + permlink;
4584								//alert(url);
4585								//window.location.href(url);	
4586								$(location).attr('href',url);
4587					});				
4588			  });
4589				  
4590
4591				
4592            });
4593        </script>
4593
4594	<!--</div>	container -->
4595</body>
4596</html>
4597
4598
4599
4600
4601 
4601<script src="https://player.vimeo.com/api/player.js"></script>
4601
4602
4603
4604<div
4605  id="socialMediaModal"
4606  class="hidden fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-50"
4607  role="dialog"
4608  aria-labelledby="socialMediaModalLabel"
4609  aria-hidden="true"
4610>
4611  <div class="modal-dialog max-w-md w-full">
4612    <div class="bg-white rounded-lg shadow-lg relative">
4613
4614      <!-- Botão de fechar -->
4615      <button
4616        class="absolute top-4 right-4 text-gray-400 hover:text-gray-600 text-2xl font-bold"
4617        onclick="document.getElementById('socialMediaModal').classList.add('hidden')"
4618      >
4619        ×
4620      </button>
4621
4622      <!-- Modal Header -->
4623      <div class="modal-header flex justify-center p-4">
4624        <p class="text-center text-gray-500 font-semibold">
4625          SHARING OPTIONS
4626        </p>
4627      </div>
4628
4629      <!-- Modal Content -->
4630      <div class="pb-6">
4631        <div class="modal-body">
4632          <!-- Botões de compartilhamento -->
4633          <div class="flex justify-center space-x-4 mt-4">
4634            <!-- Botão do Facebook -->
4635            <a
4636           	  href="https://www.facebook.com/sharer/sharer.php?kid_directed_site=0&sdk=joey&u=http://www.farmersjournal.ie/focus/pensions-and-savings-/tax-planning-is-about-efficiency-not-saving-930359&display=popup&ref=plugin&src=share_button"
4637              class="share-btn flex items-center justify-center w-10 h-10 rounded-full bg-blue-600 text-white hover:bg-blue-700"
4638              id="share-fb_xx"
4639              data-ref-title="Tax planning is about efficiency, not saving "
4640              data-ref-permlink="http://www.farmersjournal.ie/focus/pensions-and-savings-/tax-planning-is-about-efficiency-not-saving-930359"
4641            >
4642              <i class="fab fa-facebook" aria-hidden="true"></i>
4643            </a>
4644
4645            <!-- Botão do Twitter -->
4646            <a
4647              class="share-btn flex items-center justify-center w-10 h-10 rounded-full bg-blue-400 text-white hover:bg-blue-500"
4648              id="share-twitter"
4649              data-ref-title="Tax planning is about efficiency, not saving "
4650              data-ref-permlink="http://www.farmersjournal.ie/focus/pensions-and-savings-/tax-planning-is-about-efficiency-not-saving-930359"
4651            >
4652              <i class="fab fa-twitter" aria-hidden="true"></i>
4653            </a>
4654
4655            <!-- Botão de copiar link -->
4656            <a
4657              class="share-btn flex items-center justify-center w-10 h-10 rounded-full bg-gray-500 text-white hover:bg-gray-600"
4658              id="share-copy-url-to-clipboard-2"
4659            >
4660              <i class="far fa-copy" aria-hidden="true"></i>
4661            </a>
4662          </div>
4663        </div>
4664
4665        <div id="div-keep-url-to-share" style="display: none">
4666          <input type="text" id="keep-url-to-share">
4667        </div>
4668      </div>
4669    </div>
4670  </div>
4671</div>
4672
4673
4674<script type="text/javascript">
4675		$("#share-copy-url-to-clipboard-2").click(function(){
4676			copyURLtoClipboard_2();
4677			$('#socialMediaModal').addClass('hidden');
4678		})
4679
4680		var copyURLtoClipboard_2 = () => {
4681			 
4682			url = location.href;
4683			$("#div-keep-url-to-share").css("display","block");
4684
4685			$("#keep-url-to-share").val(url);
4686			$("#keep-url-to-share").focus();
4687			$("#keep-url-to-share").select();
4688
4689			document.execCommand("cut");
4690			$("#div-keep-url-to-share").css("display","none");
4691
4692		 	alert("URL copied to clipboard!");		 	
4693
4694
4695	    }
4696
4697</script>
4697
4698
4699
4700
4701
4702<script>
4703
4704
4705
4706
4707
4708            	//Sharing Handler
4709            	$('.share-btn-v2').click(function() {
4710
4711            		id = $(this).attr('id');
4712
4713					if(id === "share-mail-v2") {
4714						subject = $(this).attr('data-ref-title');
4715						body    = $(this).attr('data-ref-title') +' '+$(this).attr('data-ref-permlink');
4716	            		window.location.href = "mailto:?body="+body+"&subject="+subject;
4717					}
4718
4719					if(id === "share-socialmedia-v2") {						
4720						$('#socialMediaModal').removeClass('hidden');						
4721					}					
4722
4723					/*if(id === "share-whats") {
4724						
4725						link = $(this).attr('data-ref-permlink');
4726						//<a href="whatsapp://send?abid=phonenumber&text=Hello%2C%20World!">Send Message</a>
4727	            		//window.open ("whatsapp://send?text="+ link);
4728	            		window.location.href ="whatsapp://send?text="+ link;
4729	            		//window.open ("https://api.whatsapp.com/send?text="+link);
4730
4731					}*/
4732			    });
4733
4734
4735            	$('.share-btn').click(function() {
4736
4737            		id = $(this).attr('id');
4738
4739            		if(id === "share-fb") {
4740	            		link = $(this).attr('data-ref-permlink');
4741						FB.ui({
4742							method: 'share',
4743							href: link,
4744							},
4745							// callback
4746							function(response) {console.log(response);}
4747						);
4748					}
4749
4750					if(id === "share-twitter") {
4751	            		link = $(this).attr('data-ref-permlink');
4752						window.open ("https://twitter.com/share?url="+link,"twitterShareWindow","menubar=1,resizable=1,width=650,height=650");
4753					}					
4754
4755			    });
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765</script>
4765
4766
4767
4768
4769
4770<!-- related to this card https://trello.com/c/63tMD9XP/152-ad-slots-in-icl-articles -->
4771<style>
4772	.table-centerM div{
4773		height: 0px !important;
4774	}
4775
4776	.table-center div{
4777		/*height: 0px !important;*/
4778	}
4779</style>
4780
4781
4782<script>
4783
4784        var cdlCookie = Cookies.get('cdl');
4785        console.log("cdl cookie");
4786        console.log(cdlCookie);
4787				var cdlLocalstorage = localStorage.getItem('cdl');
4788
4789        console.log("cdl localstorage");
4790        console.log(cdlLocalstorage);				
4791
4792
4793				if( (cdlCookie==undefined) && (cdlLocalstorage=="usingcode") ){
4794	        	console.log("creating cookie cdl - article.php line 2522");
4795            loyaltycode = "usingcode";
4796            edsvalue = "2021-07-14T20:59:00.000Z";
4797            document.cookie = 'cdl' + "=" + loyaltycode + "; expires=" + edsvalue + "; path=/";
4798            window.location.reload();
4799
4800				}
4801	
4802
4803
4804
4805
4806
4807
4808
4809</script>
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820<script type="text/javascript">
4821		  setTimeout(function(){ 
4822		  	$(".article-body").css("display", "block");		  	
4823	  	}, 1000);
4824		  // just to dont show the entire story before proccess the incognito logic 
4825</script>
4825
4826
4827
4828
4829
4830
4831<script type="text/javascript">
4832
4833$( document ).ready(function() {
4834
4835	setTimeout(function(){
4836
4837	
4838
4839			$('.contribly-gallery-v2').each(function(index,item){
4840
4841			    if(parseInt((index))>1){
4842			        $(this).replaceWith("");
4843			    }
4844			});
4845
4846
4847
4848			$('.form-group.header__filters--tags.gallery-header__filters').each(function(index,item){
4849			    if(parseInt((index))>=0){
4850			 	$(this).replaceWith("");
4851			    }
4852			});
4853
4854			
4855			$('.contribly-order-filter').each(function(index,item){
4856			    if(parseInt((index))>0){
4857			 	$(this).replaceWith("");
4858			    }
4859			});
4860
4861
4862			$('.contribly-next-previous-buttons').each(function(index,item){
4863			    if(parseInt((index))>0){
4864			 	$(this).replaceWith("");
4865			    }
4866			});
4867
4868
4869
4870		//}
4871
4872
4873	}, 6000);
4874
4875});		
4876
4877
4878</script>
4878
4879
4880
4881<script type="text/javascript">
4882$( document ).ready(function() {
4883
4884	$(".contribly-gallery-v2").on("click", ".card-text__copy", function(){
4885
4886	  if($(this).hasClass('long-copy')){
4887		  $(this).removeClass('long-copy')
4888	  } else {
4889		  $(this).addClass('long-copy')
4890	  }
4891
4892	});
4893
4894
4895
4896/*if ($('.contribly-contribute-v2').length > 0) {
4897 	$('#runninglowModal').css('display', 'none') 
4898 	console.log('#runninglowModal deactivated because we have contribly form on the article body')
4899}*/
4900
4901
4902});
4903</script>
4903
4904
4905
4906<script>
4907  const lightbox = GLightbox({
4908    touchNavigation: true,
4909    loop: true,
4910    selector: '.glightbox'
4911  });
4912
4913
4914  let autoSlideInterval;
4915
4916  lightbox.on('open', () => {
4917    autoSlideInterval = setInterval(() => {
4918      lightbox.nextSlide();
4919    }, 4000); // muda a imagem a cada 4 segundos
4920  });
4921
4922  lightbox.on('close', () => {
4923    clearInterval(autoSlideInterval);
4924  });
4925
4926</script>
4926
4927
4928
4929
4930<script>
4931    // Adiciona evento de clique a todos os ícones da câmera
4932    document.querySelectorAll('.camera-icon').forEach(icon => {
4933        icon.addEventListener('click', () => {
4934            // Encontra o link (<a>) irmão mais próximo
4935            const parentDiv = icon.parentElement; // Pega o elemento pai direto
4936            const link = parentDiv.querySelector('a'); // Procura o link dentro do pai
4937            if (link) {
4938                // Simula o clique no link
4939                link.click();
4940            }
4941        });
4942    });
4943</script>
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952<!-- ============================================================
4953     Flip-Pay shopfront rewrite (mesmo do WWW6-subscribe.php)
4954     Reestiliza os cards de preco renderizados pelo SDK do Flip-Pay
4955     dentro do paywall inline do artigo. Desative com ?fp-overwrite
4956     ============================================================ -->
4957
4958
4959
4960
4961<script>
4962(function () {
4963  'use strict';
4964
4965  var BRAND_COLOR = '#da2128';
4966  var SELECTOR_PRICES = '[data-fp-element="prices"]';
4967  var SELECTOR_PRICE_CARD = '[data-fp-element="price"]';
4968  var REWRITTEN_FLAG = 'fpRewritten';
4969  var STYLE_INJECTED_FLAG = 'fpStyleInjected';
4970
4971  var BONUS_PREFIX = /^(\+\s*annual includes:?|annual includes:?|bonus:?|gift:?)\s*/i;
4972
4973  var CARD_CLASSES_TW = 'border-2 border-[#da2128]';
4974
4975  // Configuração da fitinha "MOST USED" — quais planos a recebem (matching pelo nome)
4976  // Comparação é case-insensitive e funciona com substring (ex: "Digital Premium" pega "Digital Premium Plus")
4977  var MOST_USED_LABEL = 'MOST USED';
4978  var MOST_USED_FOR = ['Digital Premium']; // adicione mais nomes se quiser
4979
4980  // === Normalização do nome do plano exibido no card ===
4981  // O painel do flip-pay pode cadastrar o produto anual com nome diferente
4982  // (ex: "Digital Premium Annual"), o que quebra o match visual com a aba
4983  // Monthly e também o isMostUsed(). Removemos sufixos/prefixos de
4984  // periodicidade para exibir sempre o mesmo nome nas duas abas.
4985  var PLAN_NAME_PERIOD_RE = /\s*[-–—(]?\s*\b(annual(ly)?|yearly|monthly|per\s+(year|month))\b\s*[)]?\s*/gi;
4986  // Overrides manuais: se o nome vindo do painel (case-insensitive) bater
4987  // com a chave, exibimos o valor. Útil quando o nome anual é muito
4988  // diferente e a limpeza automática não resolve.
4989  var PLAN_NAME_OVERRIDES = {
4990    // 'digital premium annual': 'Digital Premium'
4991  };
4992
4993  function normalizePlanName(name) {
4994    if (!name) return name;
4995    var key = name.toLowerCase().trim();
4996    if (PLAN_NAME_OVERRIDES[key]) return PLAN_NAME_OVERRIDES[key];
4997    var cleaned = name.replace(PLAN_NAME_PERIOD_RE, ' ').replace(/\s{2,}/g, ' ').trim();
4998    return cleaned || name;
4999  }
5000
5001  // === Config específica do article.php ===
5002  // No paywall inline do artigo não cabem 4 cards: selecionamos os planos
5003  // PELO NOME (já normalizado, sem "Annual"/"Monthly"), não pela posição.
5004  // Isso garante que as duas abas mostrem os mesmos planos, mesmo que o
5005  // flip-pay renderize os cards em ordem diferente em cada aba (ex: na aba
5006  // Annual o "Print & Digital Standard" vem antes do "Digital Premium").
5007  // A ordem dos cards na tela segue a ordem desta lista.
5008  var VISIBLE_PLANS = ['Digital Standard', 'Digital Premium'];
5009  // Fallback: se nenhum nome bater (ex: painel renomeou os produtos),
5010  // mostramos os N primeiros como antes, para nunca renderizar vazio.
5011  var MAX_VISIBLE_PLANS = 2;
5012  // Botão vermelho "View All Plans" abaixo dos cards, levando para a página completa
5013  var VIEW_PLANS_URL = '/subscribe.php';
5014  var VIEW_PLANS_LABEL = 'See All Plans';
5015  // Aba pré-selecionada no primeiro render. O fragmento inline do flip-pay no
5016  // artigo vem com Monthly marcado; forçamos Annual uma única vez usando o
5017  // mesmo mecanismo do toggle (click no input radio original do flip-pay).
5018  // Depois disso o usuário pode alternar livremente.
5019  var DEFAULT_TAB = 'annual';
5020  var DEFAULT_TAB_FLAG = 'fpDefaultTabApplied';
5021
5022  function readFromPainel(el) {
5023    if (!el) return '';
5024    var txt = (el.textContent || '').trim();
5025    if (!txt) return '';
5026    if (/^\{\{.*\}\}$/.test(txt)) return '';
5027    return txt;
5028  }
5029
5030  // Retorna true se planName corresponde a algum entry de MOST_USED_FOR
5031  function isMostUsed(planName) {
5032    if (!planName) return false;
5033    var nameLower = planName.toLowerCase().trim();
5034    for (var i = 0; i < MOST_USED_FOR.length; i++) {
5035      // Match exato OU plano "Digital Premium" não pegando "Print & Digital Premium" — checa se começa com o nome
5036      var target = MOST_USED_FOR[i].toLowerCase().trim();
5037      if (nameLower === target) return true;
5038    }
5039    return false;
5040  }
5041
5042  function injectStylesOnce() {
5043    if (document.documentElement.dataset[STYLE_INJECTED_FLAG] === '1') return;
5044    document.documentElement.dataset[STYLE_INJECTED_FLAG] = '1';
5045
5046    var css =
5047      '.ifj-shopfront{background:transparent;padding:0px 16px 0px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;}' +
5048      '.ifj-shopfront *{box-sizing:border-box;}' +
5049      '.ifj-shopfront-inner{max-width:1200px;margin:0 auto;}' +
5050
5051      '.ifj-shopfront-header{text-align:center;margin-bottom:24px;}' +
5052      '.ifj-shopfront-header h2{font-family:Georgia,"Times New Roman",serif;font-size:32px;font-weight:700;
5052color:#1a1a1a;line-height:1.1;margin:0 0 16px;}' +
5053      '.ifj-shopfront-header p{font-size:16px;color:#444;margin:0;}' +
5054
5055      // === Toggle Annual/Monthly ===
5056      // Wrapper que mantém os inputs/labels originais do flip-pay vivos no DOM
5057      // (necessário para que o flip-pay continue identificando a aba ativa)
5058      '.ifj-original-tabs-holder{position:absolute !important;width:1px !important;height:1px !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;pointer-events:none !important;opacity:0 !important;}' +
5059      // Esconde inputs/labels originais do flip-pay caso não estejam no wrapper acima
5060      '[data-fp-element="prices"] input[name="prices_tab"],' +
5061      '[data-fp-element="prices"] input[name="prices_tabs"],' +
5062      '[data-fp-element="prices_tabs"]{' +
5063        'position:absolute !important;' +
5064        'opacity:0 !important;' +
5065        'pointer-events:none !important;' +
5066        'width:1px !important;' +
5067        'height:1px !important;' +
5068        'overflow:hidden !important;' +
5069        'clip:rect(0,0,0,0) !important;' +
5070        'margin:-1px !important;' +
5071        'padding:0 !important;' +
5072        'border:0 !important;' +
5073      '}' +
5074      '.ifj-tabs-wrapper{display:flex;justify-content:center;margin:0 0 32px;}' +
5075      '.ifj-tabs{display:inline-flex;background:transparent;border:1px solid #d9d4c7;border-radius:6px;padding:4px;gap:0;position:relative;}' +
5076      '.ifj-tab-btn{display:inline-block;padding:8px 28px;font-size:14px;font-weight:600;color:#1a1a1a;background:transparent;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s,color .2s;letter-spacing:0.3px;line-height:1.2;font-family:inherit;outline:none;}' +
5077      '.ifj-tab-btn:hover{color:' + BRAND_COLOR + ';}' +
5078      '.ifj-tab-btn.-active{background:' + BRAND_COLOR + ' !important;color:#fff !important;}' +
5079      '.ifj-tab-btn.-active:hover{color:#fff !important;}' +
5080      '.ifj-tab-btn:focus-visible{outline:2px solid ' + BRAND_COLOR + ';outline-offset:2px;}' +
5081
5082      '.ifj-plans-wrapper{display:grid;gap:24px;align-items:stretch;padding-top:18px;}' +
5083      '.ifj-plans-wrapper.-cols-1{grid-template-columns:minmax(0,420px);justify-content:center;}' +
5084      '.ifj-plans-wrapper.-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:880px;margin:0 auto;}' +
5085      '.ifj-plans-wrapper.-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}' +
5086      '.ifj-plans-wrapper.-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}' +
5087
5088      // Card padrão: overflow:visible para a fitinha sair pelo topo
5089      '.ifj-shopfront .ifj-box{position:relative !important;background:#fffdf9 !important;border:2px solid ' + BRAND_COLOR + ' !important;border-radius:6px !important;padding:32px 28px 28px !important;display:flex !important;flex-direction:column !important;height:100% !important;box-shadow:none !important;overflow:visible !important;}' +
5090
5091      // Card "Most Used": padding superior maior para acomodar a fitinha
5092      '.ifj-shopfront .ifj-box.ifj-box--most-used{padding-top:40px !important;}' +
5093
5094      // FITINHA "MOST USED" no topo do card
5095      '.ifj-shopfront .ifj-most-used-badge{' +
5096        'position:absolute !important;' +
5097        'top:-11px !important;' +
5098        'left:50% !important;' +
5099        'transform:translateX(-50%) !important;' +
5100        'background:#fffdf9 !important;' +
5101        'color:' + BRAND_COLOR + ' !important;' +
5102        'border:1px solid ' + BRAND_COLOR + ' !important;' +
5103        'font-size:11px !important;' +
5104        'font-weight:700 !important;' +
5105        'letter-spacing:1.5px !important;' +
5106        'text-transform:uppercase !important;' +
5107        'padding:4px 16px !important;' +
5108        'border-radius:3px !important;' +
5109        'white-space:nowrap !important;' +
5110        'margin:0 !important;' +
5111        'line-height:1 !important;' +
5112        'z-index:2 !important;' +
5113        'box-shadow:none !important;' +
5114      '}' +
5115
5116      // Título do plano com prioridade alta para vencer o display:none do Flip-Pay
5117      '[data-fp-element="prices"] [data-fp-element="price"] .ifj-plan-title.fp-card-title,' +
5118      '.ifj-shopfront .ifj-plan-title{' +
5119        'display:block !important;' +
5120        'visibility:visible !important;' +
5121        'text-align:center !important;' +
5122        'font-size:14px !important;' +
5123        'font-weight:700 !important;' +
5124        'letter-spacing:1.5px !important;' +
5125        'text-transform:uppercase !important;' +
5126        'color:' + BRAND_COLOR + ' !important;' +
5127        'margin:0 0 18px !important;' +
5128        'padding:0 !important;' +
5129        'min-height:0 !important;' +
5130        'line-height:1.3 !important;' +
5131        'opacity:1 !important;' +
5132        'height:auto !important;' +
5133      '}' +
5134
5135      '.ifj-price-wrapper{text-align:center;margin:0 0 6px;}' +
5136      '.ifj-price{margin:0;display:inline-flex;align-items:baseline;justify-content:center;gap:0;font-family:inherit;}' +
5137      '.ifj-price > span:first-child{font-size:15px;color:#555;font-weight:400;margin-right:6px;}
5137' +
5138      '.ifj-price big{font-size:36px;font-weight:800;color:#1a1a1a;line-height:1;letter-spacing:-1px;font-family:inherit;}' +
5139      '.ifj-price > span:last-child{font-size:14px;color:#555;font-weight:400;margin-left:1px;}' +
5140
5141      '.ifj-strike-through{display:block;text-align:center;font-size:14px;color:#a64449;text-decoration:line-through;margin:0 0 28px;font-weight:500;}' +
5142      '.ifj-strike-through.-empty{visibility:hidden;height:14px;margin:0 0 28px;}' +
5143
5144      '.ifj-checklist{list-style:none !important;padding:0 !important;margin:0 0 24px !important;}' +
5145      '.ifj-checklist li{position:relative !important;padding:6px 0 6px 24px !important;font-size:14px !important;color:#1a1a1a !important;line-height:1.45 !important;background:none !important;border:none !important;}' +
5146      '.ifj-checklist li::before{content:"\\2713";position:absolute;left:0;top:6px;color:#3a3a3a;font-weight:400;font-size:14px;line-height:1.45;}' +
5147
5148      '.ifj-gift-wrapper{margin:8px 0 24px;}' +
5149      '.ifj-deal-description{font-size:14px;font-weight:700;color:' + BRAND_COLOR + ';margin:0 0 6px;letter-spacing:0.3px;}' +
5150      '.ifj-gift-wrapper p:not(.ifj-deal-description){font-size:14px;color:#1a1a1a;margin:0 0 4px;}' +
5151
5152      '.ifj-pusher{flex:1;min-height:8px;}' +
5153
5154      '.ifj-shopfront .ifj-btn-wrapper{text-align:center !important;margin:8px 0 0 !important;padding:0 16px !important;background:none !important;border:none !important;}' +
5155      '.ifj-shopfront .ifj-btn-wrapper button{width:100% !important;background:#000 !important;color:#fff !important;font-size:16px !important;font-weight:600 !important;padding:14px 24px !important;border:none !important;border-radius:6px !important;cursor:pointer !important;transition:background-color .2s !important;font-family:inherit !important;letter-spacing:0.2px !important;}' +
5156      '.ifj-shopfront .ifj-btn-wrapper button:hover{background:' + BRAND_COLOR + ' !important;}' +
5157
5158      '.ifj-terms{text-align:center;font-size:13px;color:#666;margin:40px 0 0;}' +
5159      '.ifj-terms a{color:#1a1a1a;text-decoration:underline;font-weight:600;}' +
5160      '.ifj-terms i{font-style:italic;color:#666;}' +
5161      '.ifj-already-sub{text-align:center;font-size:14px;color:#444;margin:16px 0 0;}' +
5162      '.ifj-already-sub .fp-sign-in{color:' + BRAND_COLOR + ';font-weight:600;text-decoration:underline;cursor:pointer;margin-left:4px;}' +
5163      '.ifj-disclaimer{text-align:center;font-size:12px;color:#888;margin:8px 0 0;}' +
5164
5165      // === Botão "View Our Plans" (article.php) ===
5166      '.ifj-view-plans{text-align:center !important;margin:32px 0 8px !important;padding:0 !important;background:none !important;border:none !important;}' +
5167      '.ifj-view-plans .fp-btn{display:inline-block !important;background:' + BRAND_COLOR + ' !important;color:#fff !important;font-family:Georgia,"Times New Roman",serif !important;font-size:16px !important;font-weight:700 !important;line-height:1.2 !important;padding:16px 48px !important;border:none !important;border-radius:14px !important;text-decoration:none !important;cursor:pointer !important;transition:background-color .2s !important;}' +
5168      '.ifj-view-plans .fp-btn:hover{background:#b81b21 !important;color:#fff !important;text-decoration:none !important;}' +
5169      '.ifj-view-plans .fp-btn-subscribe{color:#fff !important;}' +
5170
5171      '@media (max-width:1024px){.ifj-plans-wrapper.-cols-3,.ifj-plans-wrapper.-cols-4{grid-template-columns:repeat(2,minmax(0,1fr));}}' +
5172      '@media (max-width:640px){.ifj-plans-wrapper.-cols-2,.ifj-plans-wrapper.-cols-3,.ifj-plans-wrapper.-cols-4{grid-template-columns:1fr;max-width:480px;}.ifj-shopfront-header h2{font-size:30px;}.ifj-shopfront .ifj-box{padding:28px 24px 28px !important;}.ifj-shopfront .ifj-box.ifj-box--most-used{padding-top:36px !important;}}';
5173
5174    var styleEl = document.createElement('style');
5175    styleEl.id = 'ifj-rewrite-styles';
5176    styleEl.textContent = css;
5177    document.head.appendChild(styleEl);
5178  }
5179
5180  function rewritePricesContainer(container) {
5181    if (container.dataset[REWRITTEN_FLAG] === '1') return;
5182
5183    var originalCards = container.querySelectorAll(SELECTOR_PRICE_CARD);
5184    if (originalCards.length === 0) return;
5185
5186    injectStylesOnce();
5187
5188    var plans = [];
5189    originalCards.forEach(function (card) {
5190      var titleEl       = card.querySelector('.fp-card-title');
5191      var badgeLabelEl  = card.querySelector('.fp-premium-wrap');
5192      var priceBigEl    = card.querySelector('.fp-price big');
5193      var priceFreqEl   = card.querySelector('.fp-price big + span');
5194      var priceOutEl    = card.querySelector('.fp-premium-description');
5195      var descriptionEls = card.querySelectorAll('[data-fp-element="price-description"]');
5196      var buttonEl      = card.querySelector('[data-fp-element="price_select"]');
5197
5198      var features = [];
5199      var bonuses = [];
5200      descriptionEls.forEach(function (li) {
5201        var textSpan = li.querySelector('span:last-child');
5202        var rawText = textSpan ? textSpan.textContent.trim() : li.textContent.trim();
5203        var rawHtml = textSpan ? textSpan.innerHTML : li.innerHTML;
5204        if (BONUS_PREFIX.test(rawText)) {
5205          bonuses.push({ cleanHtml: rawHtml.replace(BONUS_PREFIX, '').trim() });
5206        } else {
5207          features.push({
5208            html: rawHtml,
5209            enabledClass: (li.className.match(/cxb-a\s+(\S+)/) || [])[1] || ''
5210          });
5211        }
5212      });
5213
5214      var planName = normalizePlanName(readFromPainel(badgeLabelEl) || readFromPainel(titleEl));
5215
5216      plans.push({
5217        cardEl: card,
5218        planName: planName,
5219        mostUsed: isMostUsed(planName),
5220        priceBig: priceBigEl ? priceBigEl.textContent.trim() : '',
5221        priceFreq: priceFreqEl ? priceFreqEl.textContent.trim() : '',
5222        priceOut: priceOutEl ? priceOutEl.textContent.trim() : '',
5223        features: features,
5224        bonuses: bonuses,
5225        buttonEl: buttonEl,
5226        originalClasses: card.className
5227      });
5228    });
5229
5230    // === Seleciona os planos visíveis PELO NOME (article.php) ===
5231    // A ordem de renderização do flip-pay muda entre as abas Annual/Monthly,
5232    // então pegar "os N primeiros" mostrava Print & Digital Standard no
5233    // Annual. Agora filtramos pela whitelist VISIBLE_PLANS (nomes já
5234    // normalizados, sem sufixo de periodicidade), na ordem da lista.
5235    // Roda de novo a cada re-render do flip-pay, valendo para as duas abas.
5236    if (VISIBLE_PLANS && VISIBLE_PLANS.length > 0) {
5237      var selected = [];
5238      VISIBLE_PLANS.forEach(function (wanted) {
5239        var wantedLower = wanted.toLowerCase().trim();
5240        for (var p = 0; p < plans.length; p++) {
5241          if ((plans[p].planName || '').toLowerCase().trim() === wantedLower &&
5242              selected.indexOf(plans[p]) === -1) {
5243            selected.push(plans[p]);
5244            break;
5245          }
5246        }
5247      });
5248      if (selected.length > 0) {
5249        plans = selected;
5250      } else if (MAX_VISIBLE_PLANS > 0 && plans.length > MAX_VISIBLE_PLANS) {
5251        // Fallback: nenhum nome bateu — mantém comportamento antigo
5252        plans = plans.slice(0, MAX_VISIBLE_PLANS);
5253      }
5254    } else if (MAX_VISIBLE_PLANS > 0 && plans.length > MAX_VISIBLE_PLANS) {
5255      plans = plans.slice(0, MAX_VISIBLE_PLANS);
5256    }
5257
5258    // Busca header/subheader tolerante: o template do flip-pay pode usar
5259    // .fp-shopfront-title (versão antiga) ou .fp-title (versão nova).
5260    var existingHeader = container.querySelector('.fp-shopfront-title') ||
5261                         container.querySelector('h2.fp-title') ||
5262                         container.querySelector('.fp-title');
5263    var existingHeaderText = existingHeader ? existingHeader.textContent.trim() : ''; /*Unlock full digital access to Irish Farmers Journal.*/
5264    var existingSubHeader = container.querySelector('.fp-shopfront-sub-title') ||
5265                            container.querySelector('.fp-sub-title');
5266    var existingSubHeaderText = existingSubHeader ? existingSubHeader.textContent.trim() : ''; /*Choose a plan.*/
5267    var alreadySubWrapper = container.querySelector('.fp-already-subscriber-wrapper');
5268    var disclaimer = container.querySelector('.fp-disclaimer-wrapper');
5269
5270    // === Captura das tabs Annual/Monthly (novo no fragmento do flip-pay) ===
5271    // O flip-pay renderiza um <input type="radio" name="prices_tab"> + <label> para cada aba,
5272    // dentro de um wrapper com [data-fp-element="prices_tabs"].
5273    // Em vez de mover os inputs originais (o que pode quebrar handlers do flip-pay),
5274    // criamos botões proxy que disparam click no input original via for=id.
5275    var tabInputs = container.querySelectorAll('input[name="prices_tab"], input[name="prices_tabs"]');
5276    var capturedTabs = [];
5277    tabInputs.forEach(function (input) {
5278      var label = container.querySelector('label[for="' + input.id + '"]');
5279      capturedTabs.push({
5280        inputId: input.id,
5281        inputValue: input.value,
5282        checked: input.checked,
5283        labelText: label ? label.textContent.trim() : (input.value || '')
5284      });
5285    });
5286
5287    // === Pré-seleciona a aba default (Annual) no primeiro render ===
5288    // Mesmo método do toggle: dispara click no input radio original do
5289    // flip-pay, que re-renderiza o fragmento já com Annual ativo — o
5290    // MutationObserver detecta e roda o rewrite de novo. O flag em <html>
5291    // garante que isso acontece só uma vez, para não impedir o usuário
5292    // de trocar para Monthly depois.
5293    if (DEFAULT_TAB && capturedTabs.length > 0 &&
5294        document.documentElement.dataset[DEFAULT_TAB_FLAG] !== '1') {
5295      var defaultTab = null;
5296      for (var t = 0; t < capturedTabs.length; t++) {
5297        var hay = (capturedTabs[t].labelText + ' ' + capturedTabs[t].inputValue).toLowerCase();
5298        if (hay.indexOf(DEFAULT_TAB.toLowerCase()) !== -1) {
5299          defaultTab = capturedTabs[t];
5300          break;
5301        }
5302      }
5303      document.documentElement.dataset[DEFAULT_TAB_FLAG] = '1';
5304      if (defaultTab && !defaultTab.checked) {
5305        var defaultInput = document.getElementById(defaultTab.inputId);
5306        if (defaultInput) {
5307          defaultInput.click();
5308          // Aborta este passe: o flip-pay vai re-renderizar com Annual
5309          // marcado e o observer reprocessa o container do zero.
5310          return;
5311        }
5312      }
5313    }
5314
5315    var newRoot = document.createElement('div');
5316    newRoot.className = 'ifj-shopfront';
5317
5318    var inner = document.createElement('div');
5319    inner.className = 'ifj-shopfront-inner';
5320    newRoot.appendChild(inner);
5321
5322    var header = document.createElement('div');
5323    header.className = 'ifj-shopfront-header';
5324    header.innerHTML =
5325      '<h2>' + escapeHtml(existingHeaderText) + '</h2>' +
5326      '<p><div>' + escapeHtml(existingSubHeaderText) + '</div></p>';
5327    inner.appendChild(header);
5328
5329    // === Renderiza o toggle Annual/Monthly (se existir) ===
5330    if (capturedTabs.length > 0) {
5331      var tabsWrapper = document.createElement('div');
5332      tabsWrapper.className = 'ifj-tabs-wrapper';
5333
5334      var tabsInner = document.createElement('div');
5335      tabsInner.className = 'ifj-tabs';
5336      tabsWrapper.appendChild(tabsInner);
5337
5338      capturedTabs.forEach(function (tab) {
5339        var btn = document.createElement('button');
5340        btn.type = 'button';
5341        btn.className = 'ifj-tab-btn' + (tab.checked ? ' -active' : '');
5342        btn.setAttribute('data-fp-tab-target', tab.inputId);
5343        btn.setAttribute('data-fp-tab-value', tab.inputValue);
5344        btn.textContent = tab.labelText;
5345
5346        btn.addEventListener('click', function () {
5347          var realInput = document.getElementById(tab.inputId);
5348          if (realInput && !realInput.checked) {
5349            // Atualiza visual imediato (antes do flip-pay re-renderizar)
5350            tabsInner.querySelectorAll('.ifj-tab-btn').forEach(function (b) {
5351              b.classList.remove('-active');
5352            });
5353            btn.classList.add('-active');
5354            // Dispara o click no input radio original — o flip-pay tem listener nele
5355            realInput.click();
5356          }
5357        });
5358
5359        tabsInner.appendChild(btn);
5360      });
5361
5362      inner.appendChild(tabsWrapper);
5363    }
5364
5365    var visibleCount = plans.filter(function (p) { return !/(\bhidden\b|\bfp-hide\b)/.test(p.originalClasses); }).length || plans.length;
5366    var cols = Math.min(Math.max(visibleCount, 1), 4);
5367    var grid = document.createElement('div');
5368    grid.className = 'ifj-plans-wrapper -cols-' + cols;
5369    inner.appendChild(grid);
5370
5371    plans.forEach(function (plan) {
5372      var card = document.createElement('div');
5373      card.setAttribute('data-fp-element', 'price');
5374      var classes = ['ifj-box', CARD_CLASSES_TW];
5375      if (plan.mostUsed) classes.push('ifj-box--most-used');
5376      card.className = classes.join(' ');
5377
5378      // FITINHA "Most Used" só aparece no card destacado
5379      if (plan.mostUsed) {
5380        var badge = document.createElement('span');
5381        badge.className = 'ifj-most-used-badge';
5382        badge.textContent = MOST_USED_LABEL;
5383        card.appendChild(badge);
5384      }
5385
5386      // Título do plano
5387      if (plan.planName) {
5388        var planTitle = document.createElement('h5');
5389        planTitle.className = 'ifj-plan-title';
5390        planTitle.style.cssText = 'display:block !important;';
5391        planTitle.textContent = plan.planName;
5392        card.appendChild(planTitle);
5393      }
5394
5395      var priceWrapper = document.createElement('div');
5396      priceWrapper.className = 'ifj-price-wrapper fp-price-wrapper';
5397      priceWrapper.innerHTML =
5398        '<p class="ifj-price fp-price">' +          
5399          '<big>' + escapeHtml(plan.priceBig) + '</big>' +
5400          '<span>' + escapeHtml(plan.priceFreq) + '</span>' +
5401        '</p>';
5402      card.appendChild(priceWrapper);
5403
5404      var strike = document.createElement('div');
5405      if (plan.priceOut) {
5406        strike.className = 'ifj-strike-through fp-premium-description';
5407        strike.textContent = plan.priceOut;
5408      } else {
5409        strike.className = 'ifj-strike-through -empty';
5410      }
5411      card.appendChild(strike);
5412
5413      var ul = document.createElement('ul');
5414      ul.className = 'ifj-checklist fp-sub-price-descriptions';
5415      ul.setAttribute('data-fp-element', 'price-descriptions');
5416
5417      plan.features.forEach(function (feat) {
5418        var li = document.createElement('li');
5419        li.setAttribute('data-fp-element', 'price-description');
5420        li.className = 'cxb-a ' + feat.enabledClass;
5421        li.innerHTML = feat.html;
5422        ul.appendChild(li);
5423      });
5424      card.appendChild(ul);
5425
5426      if (plan.bonuses.length > 0) {
5427        var giftWrapper = document.createElement('div');
5428        giftWrapper.className = 'ifj-gift-wrapper';
5429
5430        var dealLabel = document.createElement('p');
5431        dealLabel.className = 'ifj-deal-description';
5432        dealLabel.textContent = '+ ANNUAL INCLUDES';
5433        giftWrapper.appendChild(dealLabel);
5434
5435        plan.bonuses.forEach(function (bonus) {
5436          var p = document.createElement('p');
5437          p.innerHTML = bonus.cleanHtml;
5438          giftWrapper.appendChild(p);
5439        });
5440        card.appendChild(giftWrapper);
5441      }
5442
5443      var pusher = document.createElement('div');
5444      pusher.className = 'ifj-pusher';
5445      card.appendChild(pusher);
5446
5447      var btnWrapper = document.createElement('p');
5448      btnWrapper.className = 'ifj-btn-wrapper fp-btn-wrapper';
5449      btnWrapper.removeAttribute('style');
5450
5451      if (plan.buttonEl) {
5452        plan.buttonEl.removeAttribute('style');
5453        plan.buttonEl.className = '';
5454        btnWrapper.appendChild(plan.buttonEl);
5455      }
5456      card.appendChild(btnWrapper);
5457
5458      grid.appendChild(card);
5459    });
5460
5461    // === Botão "View Our Plans" abaixo dos cards (article.php) ===
5462    // Leva para a página completa de subscription, onde todos os planos
5463    // (incluindo Print & Digital) ficam visíveis.
5464    var viewPlansWrapper = document.createElement('div');
5465    viewPlansWrapper.className = 'ifj-view-plans fp-btn-wrapper';
5466    viewPlansWrapper.innerHTML =
5467      '<a href="' + VIEW_PLANS_URL + '" class="fp-btn fp-redirect-btn">' +
5468        '<span class="fp-btn-subscribe">' + escapeHtml(VIEW_PLANS_LABEL) + '</span>' +
5469      '</a>';
5470    inner.appendChild(viewPlansWrapper);
5471
5472    /*var terms = document.createElement('p');
5473    terms.className = 'ifj-terms';
5474    terms.innerHTML =
5475      '<a href="#tcs">T&amp;Cs apply</a>. ' +
5476      '<i>Please note that subscription renewals are auto charged, unless cancelled.</i>';
5477    inner.appendChild(terms);*/
5478
5479    if (alreadySubWrapper) {
5480      alreadySubWrapper.className = (alreadySubWrapper.className || '') + ' ifj-already-sub';
5481      alreadySubWrapper.removeAttribute('style');
5482      inner.appendChild(alreadySubWrapper);
5483    }
5484
5485    if (disclaimer) {
5486      disclaimer.className = (disclaimer.className || '') + ' ifj-disclaimer';
5487      disclaimer.removeAttribute('style');
5488      inner.appendChild(disclaimer);
5489    }
5490
5491    // Preserva os elementos originais das tabs movendo-os para um wrapper
5492    // escondido dentro do newRoot. Sem isso, container.innerHTML='' os apagaria
5493    // e os botões proxy não teriam como disparar a troca de plano.
5494    if (capturedTabs.length > 0) {
5495      var hiddenTabsHolder = document.createElement('div');
5496      hiddenTabsHolder.className = 'ifj-original-tabs-holder';
5497      hiddenTabsHolder.setAttribute('aria-hidden', 'true');
5498
5499      // Tenta mover o wrapper [data-fp-element="prices_tabs"] inteiro (preserva estrutura
5500      // que o flip-pay possa estar esperando). Se não existir, cai no fallback de mover
5501      // inputs e labels individualmente.
5502      var pricesTabsWrapper = container.querySelector('[data-fp-element="prices_tabs"]');
5503      if (pricesTabsWrapper) {
5504        hiddenTabsHolder.appendChild(pricesTabsWrapper);
5505      } else {
5506        capturedTabs.forEach(function (tab) {
5507          var realInput = document.getElementById(tab.inputId);
5508          if (realInput) hiddenTabsHolder.appendChild(realInput);
5509          var realLabel = container.querySelector('label[for="' + tab.inputId + '"]');
5510          if (realLabel) hiddenTabsHolder.appendChild(realLabel);
5511        });
5512      }
5513      newRoot.appendChild(hiddenTabsHolder);
5514    }
5515
5516    container.innerHTML = '';
5517    container.appendChild(newRoot);
5518    container.dataset[REWRITTEN_FLAG] = '1';
5519  }
5520
5521  function escapeHtml(str) {
5522    if (str == null) return '';
5523    return String(str)
5524      .replace(/&/g, '&amp;')
5525      .replace(/</g, '&lt;')
5526      .replace(/>/g, '&gt;')
5527      .replace(/"/g, '&quot;')
5528      .replace(/'/g, '&#39;');
5529  }
5530
5531  function tryRewrite() {
5532    var containers = document.querySelectorAll(SELECTOR_PRICES);
5533    containers.forEach(function (c) {
5534      // Se o container tem cards "originais" do flip-pay (não os nossos),
5535      // significa que o flip-pay (re)renderizou — resetamos o flag para reprocessar.
5536      // Nossos cards customizados ficam dentro de .ifj-shopfront, então um card
5537      // que NÃO está dentro de .ifj-shopfront é um card original do flip-pay.
5538      var hasOriginalCard = false;
5539      var allCards = c.querySelectorAll(SELECTOR_PRICE_CARD);
5540      for (var i = 0; i < allCards.length; i++) {
5541        if (!allCards[i].closest('.ifj-shopfront')) {
5542          hasOriginalCard = true;
5543          break;
5544        }
5545      }
5546
5547      if (hasOriginalCard) {
5548        // Flip-pay (re)renderizou — força reprocessamento
5549        c.dataset[REWRITTEN_FLAG] = '';
5550        rewritePricesContainer(c);
5551      }
5552    });
5553  }
5554
5555  var observer = new MutationObserver(function () { tryRewrite(); });
5556
5557  function start() {
5558    tryRewrite();
5559    observer.observe(document.body, { childList: true, subtree: true });
5560    // Mantemos o observer ativo por mais tempo para capturar re-renderizações
5561    // disparadas pela troca de tabs (Annual/Monthly).
5562    setTimeout(function () { observer.disconnect(); }, 120000);
5563  }
5564
5565  if (document.readyState === 'loading') {
5566    document.addEventListener('DOMContentLoaded', start);
5567  } else {
5568    start();
5569  }
5570})();
5571</script>
5571
5572

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.