1<!doctype html> 2<html lang="en-US"> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 7 <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> 8
8<script id="tws-header-height"> 9(function () { 10 var root = document.documentElement; 11 var last = -1; 12 13 function apply() { 14 var header = document.getElementById('header'); 15 if (!header) { return; } 16 var h = Math.round(header.getBoundingClientRect().height); 17 // Ignore a zero reading, which happens if we measure while the header is hidden. 18 if (!h || h === last) { return; } 19 last = h; 20 root.style.setProperty('--tws-header-h', h + 'px'); 21 } 22 23 function init() { 24 apply(); 25 26 var header = document.getElementById('header'); 27 28 // Primary mechanism: fires on any height change, including the CTA strapline 29 // rewrapping on rotate or resize, and late web font swaps. 30 if (header && window.ResizeObserver) { 31 new ResizeObserver(apply).observe(header); 32 } 33 34 // Fallbacks for browsers without ResizeObserver, and for anything that changes 35 // the header after first paint. 36 window.addEventListener('resize', apply, { passive: true }); 37 window.addEventListener('orientationchange', apply); 38 window.addEventListener('load', apply); 39 40 if (document.fonts && document.fonts.ready) { 41 document.fonts.ready.then(apply).catch(function () {}); 42 } 43 } 44 45 if (document.readyState === 'loading') { 46 document.addEventListener('DOMContentLoaded', init); 47 } else { 48 init(); 49 } 50}()); 51</script>
51 52
52<script id="tws-ticket-ref" nowprocket data-cfasync="false" data-no-optimize="1" data-no-defer="1"> 53(function(){try{ 54var PATHS=[],HERE=false; 55var q=new URLSearchParams(location.search); 56var tag=(q.get('ref')||[q.get('utm_source'),q.get('utm_campaign')].filter(Boolean).join('-')).replace(/[^A-Za-z0-9_-]/g,'').slice(0,40); 57if(tag){sessionStorage.setItem('tws_ref',tag);} 58var path=(location.pathname.replace(/\/+$/,'')||'/').toLowerCase(); 59if(!HERE&&PATHS.indexOf(path)===-1)return; 60if(q.get('ref'))return; 61var s=tag||sessionStorage.getItem('tws_ref'); 62if(!s)return; 63q.set('ref',s); 64history.replaceState(history.state,'',location.pathname+'?'+q.toString()+location.hash); 65}catch(e){}})(); 66</script>
66 67 68 <!-- This site is optimized with the Yoast SEO plugin v24.4 - https://yoast.com/wordpress/plugins/seo/ --> 69 <title>Training - Page 1 | Gundog Journal</title><link rel="preload" data-rocket-preload as="image" href="https://gundog-journal.com/app/uploads/sites/2/2025/01/BR-Gundog-Book-Day-2-617-scaled.jpg" fetchpriority="high"> 70 <meta name="description" content="Master gundog training with expert advice from Gundog Journal. From puppy basics to advanced fieldwork, discover proven techniques and start training today!" /> 71 <link rel="canonical" href="https://gundog-journal.com/training/" /> 72 <link rel="next" href="https://gundog-journal.com/training/page/2/" /> 73 <meta property="og:locale" content="en_US" /> 74 <meta property="og:type" content="article" /> 75 <meta property="og:title" content="Training - Page 1 | Gundog Journal" /> 76 <meta property="og:description" content="Master gundog training with expert advice from Gundog Journal. From puppy basics to advanced fieldwork, discover proven techniques and start training today!" /> 77 <meta property="og:url" content="https://gundog-journal.com/training/" /> 78 <meta property="og:site_name" content="Gundog Journal" /> 79 <meta name="twitter:card" content="summary_large_image" /> 80
80<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://gundog-journal.com/training/","url":"https://gundog-journal.com/training/","name":"Training - Page 1 | Gundog Journal","isPartOf":{"@id":"https://gundog-journal.com/#website"},"primaryImageOfPage":{"@id":"https://gundog-journal.com/training/#primaryimage"},"image":{"@id":"https://gundog-journal.com/training/#primaryimage"},"thumbnailUrl":"/app/uploads/sites/2/2026/09/gundog-kennel-runs-with-labradors-and-pointer-v2.jpg","description":"Master gundog training with expert advice from Gundog Journal. From puppy basics to advanced fieldwork, discover proven techniques and start training today!","breadcrumb":{"@id":"https://gundog-journal.com/training/#breadcrumb"},"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://gundog-journal.com/training/#primaryimage","url":"/app/uploads/sites/2/2026/09/gundog-kennel-runs-with-labradors-and-pointer-v2.jpg","contentUrl":"/app/uploads/sites/2/2026/09/gundog-kennel-runs-with-labradors-and-pointer-v2.jpg","width":1600,"height":900,"caption":"Kennelling gundogs is not a decision to take lightly: comfort, security and the dog's ability to switch off all need thought. Credit: SolStock/iStock via Getty Images"},{"@type":"BreadcrumbList","@id":"https://gundog-journal.com/training/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://gundog-journal.com/"},{"@type":"ListItem","position":2,"name":"Training"}]},{"@type":"WebSite","@id":"https://gundog-journal.com/#website","url":"https://gundog-journal.com/","name":"Gundog Journal","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://gundog-journal.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}</script>
80 81 <!-- / Yoast SEO plugin. --> 82 83 84<link rel='dns-prefetch' href='//www.shootinguk.co.uk' /> 85<style id="tws-empty-ads">.tws-ad-empty{display:none!important}.flex.justify-center.items-center:has(>.tws-ad-empty),.flex.justify-center.items-center:has(>div>.tws-ad-empty),.adrotate-ad-container:has(.tws-ad-empty),div:has(>.adrotate-ad-container .tws-ad-empty),section:has(>.container>.flex.justify-center.items-center>.tws-ad-empty),section:has(>.container>.flex.justify-center.items-center>div>.tws-ad-empty){display:none!important}</style> 86<style id='global-styles-inline-css'> 87:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--inherit: inherit;--wp--preset--color--current: currentcolor;--wp--preset--color--transparent: transparent;--wp--preset--color--slate-50: #f8fafc;--wp--preset--color--slate-100: #f1f5f9;--wp--preset--color--slate-200: #e2e8f0;--wp--preset--color--slate-300: #cbd5e1;--wp--preset--color--slate-400: #94a3b8;--wp--preset--color--slate-500: #64748b;--wp--preset--color--slate-600: #475569;--wp--preset--color--slate-700: #334155;--wp--preset--color--slate-800: #1e293b;--wp--preset--color--slate-900: #0f172a;--wp--preset--color--slate-950: #020617;--wp--preset--color--gray-50: #f9fafb;--wp--preset--color--gray-100: #f3f4f6;--wp--preset--color--gray-200: #e5e7eb;--wp--preset--color--gray-300: #d1d5db;--wp--preset--color--gray-400: #9ca3af;--wp--preset--color--gray-500: #6b7280;--wp--preset--color--gray-600: #4b5563;--wp--preset--color--gray-700: #374151;--wp--preset--color--gray-800: #1f2937;--wp--preset--color--gray-900: #111827;--wp--preset--color--gray-950: #030712;--wp--preset--color--zinc-50: #fafafa;--wp--preset--color--zinc-100: #f4f4f5;--wp--preset--color--zinc-200: #e4e4e7;--wp--preset--color--zinc-300: #d4d4d8;--wp--preset--color--zinc-400: #a1a1aa;--wp--preset--color--zinc-500: #71717a;--wp--preset--color--zinc-600: #52525b;--wp--preset--color--zinc-700: #3f3f46;--wp--preset--color--zinc-800: #27272a;--wp--preset--color--zinc-900: #18181b;--wp--preset--color--zinc-950: #09090b;--wp--preset--color--neutral-50: #fafafa;--wp--preset--color--neutral-100: #f5f5f5;--wp--preset--color--neutral-200: #e5e5e5;--wp--preset--color--neutral-300: #d4d4d4;--wp--preset--color--neutral-400: #a3a3a3;--wp--preset--color--neutral-500: #737373;--wp--preset--color--neutral-600: #525252;--wp--preset--color--neutral-700: #404040;--wp--preset--color--neutral-800: #262626;--wp--preset--color--neutral-900: #171717;--wp--preset--color--neutral-950: #0a0a0a;--wp--preset--color--stone-50: #fafaf9;--wp--preset--color--stone-100: #f5f5f4;--wp--preset--color--stone-200: #e7e5e4;--wp--preset--color--stone-300: #d6d3d1;--wp--preset--color--stone-400: #a8a29e;--wp--preset--color--stone-500: #78716c;--wp--preset--color--stone-600: #57534e;--wp--preset--color--stone-700: #44403c;--wp--preset--color--stone-800: #292524;--wp--preset--color--stone-900: #1c1917;--wp--preset--color--stone-950: #0c0a09;--wp--preset--color--red-50: #fef2f2;--wp--preset--color--red-100: #fee2e2;--wp--preset--color--red-200: #fecaca;--wp--preset--color--red-300: #fca5a5;--wp--preset--color--red-400: #f87171;--wp--preset--color--red-500: #ef4444;--wp--preset--color--red-600: #dc2626;--wp--preset--color--red-700: #b91c1c;--wp--preset--color--red-800: #991b1b;--wp--preset--color--red-900: #7f1d1d;--wp--preset--color--red-950: #450a0a;--wp--preset--color--orange-50: #fff7ed;--wp--preset--color--orange-100: #ffedd5;--wp--preset--color--orange-200: #fed7aa;--wp--preset--color--orange-300: #fdba74;--wp--preset--color--orange-400: #fb923c;--wp--preset--color--orange-500: #f97316;--wp--preset--color--orange-600: #ea580c;--wp--preset--color--orange-700: #c2410c;--wp--preset--color--orange-800: #9a3412;--wp--preset--color--orange-900: #7c2d12;--wp--preset--color--orange-950: #431407;--wp--preset--color--amber-50: #fffbeb;--wp--preset--color--amber-100: #fef3c7;--wp--preset--color--amber-200: #fde68a;--wp--preset--color--amber-300: #fcd34d;--wp--preset--color--amber-400: #fbbf24;--wp--preset--color--amber-500: #f59e0b;--wp--preset--color--amber-600: #d97706;--wp--preset--color--amber-700: #b45309;--wp--preset--color--amber-800: #92400e;--wp--preset--color--amber-900: #78350f;--wp--preset--color--amber-950: #451a03;--wp--preset--color--yellow-50: #fefce8;--wp--preset--color--yellow-100: #fef9c3;--wp--preset--color--yellow-200: #fef08a;--wp--preset--color--yellow-300: #fde047;--wp--preset--color--yellow-400: #facc15;--wp--preset--color--yellow-500: #eab308;--wp--preset--color--yellow-600: #ca8a04;--wp--preset--color--yellow-700: #a16207;--wp--preset--color--yellow-800: #854d0e;--wp--preset--color--yellow-900: #713f12;--wp--preset--color--yellow-950: #422006;--wp--preset--color--lime-50: #f7fee7;--wp--preset--color--lime-100: #ecfccb;--wp--preset--color--lime-200: #d9f99d;--wp--preset--color--lime-300: #bef264;--wp--preset--color--lime-400: #a3e635;--wp--preset--color--lime-500: #84cc16;--wp--preset--color--lime-600: #65a30d;--wp--preset--color--lime-700: #4d7c0f;--wp--preset--color--lime-800: #3f6212;--wp--preset--color--lime-900: #365314;--wp--preset--color--lime-950: #1a2e05;--wp--preset--color--green-50: #f0fdf4;--wp--preset--color--green-100: #dcfce7;--wp--preset--color--green-200: #bbf7d0;--wp--preset--color--green-300: #86efac;--wp--preset--color--green-400: #4ade80;--wp--preset--color--green-500: #22c55e;--wp--preset--color--green-600: #16a34a;--wp--preset--color--green-700: #15803d;--wp--preset--color--green-800: #166534;--wp--preset--color--green-900: #14532d;--wp--preset--color--green-950: #052e16;
87--wp--preset--color--emerald-50: #ecfdf5;--wp--preset--color--emerald-100: #d1fae5;--wp--preset--color--emerald-200: #a7f3d0;--wp--preset--color--emerald-300: #6ee7b7;--wp--preset--color--emerald-400: #34d399;--wp--preset--color--emerald-500: #10b981;--wp--preset--color--emerald-600: #059669;--wp--preset--color--emerald-700: #047857;--wp--preset--color--emerald-800: #065f46;--wp--preset--color--emerald-900: #064e3b;--wp--preset--color--emerald-950: #022c22;--wp--preset--color--teal-50: #f0fdfa;--wp--preset--color--teal-100: #ccfbf1;--wp--preset--color--teal-200: #99f6e4;--wp--preset--color--teal-300: #5eead4;--wp--preset--color--teal-400: #2dd4bf;--wp--preset--color--teal-500: #14b8a6;--wp--preset--color--teal-600: #0d9488;--wp--preset--color--teal-700: #0f766e;--wp--preset--color--teal-800: #115e59;--wp--preset--color--teal-900: #134e4a;--wp--preset--color--teal-950: #042f2e;--wp--preset--color--cyan-50: #ecfeff;--wp--preset--color--cyan-100: #cffafe;--wp--preset--color--cyan-200: #a5f3fc;--wp--preset--color--cyan-300: #67e8f9;--wp--preset--color--cyan-400: #22d3ee;--wp--preset--color--cyan-500: #06b6d4;--wp--preset--color--cyan-600: #0891b2;--wp--preset--color--cyan-700: #0e7490;--wp--preset--color--cyan-800: #155e75;--wp--preset--color--cyan-900: #164e63;--wp--preset--color--cyan-950: #083344;--wp--preset--color--sky-50: #f0f9ff;--wp--preset--color--sky-100: #e0f2fe;--wp--preset--color--sky-200: #bae6fd;--wp--preset--color--sky-300: #7dd3fc;--wp--preset--color--sky-400: #38bdf8;--wp--preset--color--sky-500: #0ea5e9;--wp--preset--color--sky-600: #0284c7;--wp--preset--color--sky-700: #0369a1;--wp--preset--color--sky-800: #075985;--wp--preset--color--sky-900: #0c4a6e;--wp--preset--color--sky-950: #082f49;--wp--preset--color--blue-50: #eff6ff;--wp--preset--color--blue-100: #dbeafe;--wp--preset--color--blue-200: #bfdbfe;--wp--preset--color--blue-300: #93c5fd;--wp--preset--color--blue-400: #60a5fa;--wp--preset--color--blue-500: #3b82f6;--wp--preset--color--blue-600: #2563eb;--wp--preset--color--blue-700: #1d4ed8;--wp--preset--color--blue-800: #1e40af;--wp--preset--color--blue-900: #1e3a8a;--wp--preset--color--blue-950: #172554;--wp--preset--color--indigo-50: #eef2ff;--wp--preset--color--indigo-100: #e0e7ff;--wp--preset--color--indigo-200: #c7d2fe;--wp--preset--color--indigo-300: #a5b4fc;--wp--preset--color--indigo-400: #818cf8;--wp--preset--color--indigo-500: #6366f1;--wp--preset--color--indigo-600: #4f46e5;--wp--preset--color--indigo-700: #4338ca;--wp--preset--color--indigo-800: #3730a3;--wp--preset--color--indigo-900: #312e81;--wp--preset--color--indigo-950: #1e1b4b;--wp--preset--color--violet-50: #f5f3ff;--wp--preset--color--violet-100: #ede9fe;--wp--preset--color--violet-200: #ddd6fe;--wp--preset--color--violet-300: #c4b5fd;--wp--preset--color--violet-400: #a78bfa;--wp--preset--color--violet-500: #8b5cf6;--wp--preset--color--violet-600: #7c3aed;--wp--preset--color--violet-700: #6d28d9;--wp--preset--color--violet-800: #5b21b6;--wp--preset--color--violet-900: #4c1d95;--wp--preset--color--violet-950: #2e1065;--wp--preset--color--purple-50: #faf5ff;--wp--preset--color--purple-100: #f3e8ff;--wp--preset--color--purple-200: #e9d5ff;--wp--preset--color--purple-300: #d8b4fe;--wp--preset--color--purple-400: #c084fc;--wp--preset--color--purple-500: #a855f7;--wp--preset--color--purple-600: #9333ea;--wp--preset--color--purple-700: #7e22ce;--wp--preset--color--purple-800: #6b21a8;--wp--preset--color--purple-900: #581c87;--wp--preset--color--purple-950: #3b0764;--wp--preset--color--fuchsia-50: #fdf4ff;--wp--preset--color--fuchsia-100: #fae8ff;--wp--preset--color--fuchsia-200: #f5d0fe;--wp--preset--color--fuchsia-300: #f0abfc;--wp--preset--color--fuchsia-400: #e879f9;--wp--preset--color--fuchsia-500: #d946ef;--wp--preset--color--fuchsia-600: #c026d3;--wp--preset--color--fuchsia-700: #a21caf;--wp--preset--color--fuchsia-800: #86198f;--wp--preset--color--fuchsia-900: #701a75;--wp--preset--color--fuchsia-950: #4a044e;--wp--preset--color--pink-50: #fdf2f8;--wp--preset--color--pink-100: #fce7f3;--wp--preset--color--pink-200: #fbcfe8;--wp--preset--color--pink-300: #f9a8d4;--wp--preset--color--pink-400: #f472b6;--wp--preset--color--pink-500: #ec4899;--wp--preset--color--pink-600: #db2777;--wp--preset--color--pink-700: #be185d;--wp--preset--color--pink-800: #9d174d;--wp--preset--color--pink-900: #831843;--wp--preset--color--pink-950: #500724;--wp--preset--color--rose-50: #fff1f2;--wp--preset--color--rose-100: #ffe4e6;
87--wp--preset--color--rose-200: #fecdd3;--wp--preset--color--rose-300: #fda4af;--wp--preset--color--rose-400: #fb7185;--wp--preset--color--rose-500: #f43f5e;--wp--preset--color--rose-600: #e11d48;--wp--preset--color--rose-700: #be123c;--wp--preset--color--rose-800: #9f1239;--wp--preset--color--rose-900: #881337;--wp--preset--color--rose-950: #4c0519;--wp--preset--color--lightgrey: #b1b1b1;--wp--preset--color--heading: #525252;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
87--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--xs: 0.75rem;--wp--preset--font-size--sm: .813rem;--wp--preset--font-size--base: 16px;--wp--preset--font-size--lg: 1.125rem;--wp--preset--font-size--xl: 1.25rem;--wp--preset--font-size--2-xl: 1.5rem;--wp--preset--font-size--3-xl: 1.875rem;--wp--preset--font-size--4-xl: 2.25rem;--wp--preset--font-size--5-xl: 3rem;--wp--preset--font-size--6-xl: 3.75rem;--wp--preset--font-size--7-xl: 4.5rem;--wp--preset--font-size--8-xl: 6rem;--wp--preset--font-size--9-xl: 8rem;--wp--preset--font-size--10-px: 10px;--wp--preset--font-size--18-px: 18px;--wp--preset--font-family--proxima-nova: Proxima Nova;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){margin-left: auto !important;margin-right: auto !important;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}a:where(:not(.wp-element-button)){text-decoration: underline;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;line-height: inherit;padding: calc(0.667em + 2px) calc(1.333em + 2px);text-decoration: none;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-inherit-color{color: var(--wp--preset--color--inherit) !important;}.has-current-color{color: var(--wp--preset--color--current) !important;}.has-transparent-color{color: var(--wp--preset--color--transparent) !important;}.has-slate-50-color{color: var(--wp--preset--color--slate-50) !important;}.has-slate-100-color{color: var(--wp--preset--color--slate-100) !important;}.has-slate-200-color{color: var(--wp--preset--color--slate-200) !important;}.has-slate-300-color{color: var(--wp--preset--color--slate-300) !important;}.has-slate-400-color{color: var(--wp--preset--color--slate-400) !important;}.has-slate-500-color{color: var(--wp--preset--color--slate-500) !important;}.has-slate-600-color{color: var(--wp--preset--color--slate-600) !important;}.has-slate-700-color{color: var(--wp--preset--color--slate-700) !important;}.has-slate-800-color{color: var(--wp--preset--color--slate-800) !important;}.has-slate-900-color{color: var(--wp--preset--color--slate-900) !important;}.has-slate-950-color{color: var(--wp--preset--color--slate-950) !important;}.has-gray-50-color{color: var(--wp--preset--color--gray-50) !important;}.has-gray-100-color{color: var(--wp--preset--color--gray-100) !important;}.has-gray-200-color{color: var(--wp--preset--color--gray-200) !important;}.has-gray-300-color{color: var(--wp--preset--color--gray-300) !important;}.has-gray-400-color{color: var(--wp--preset--color--gray-400) !important;}.has-gray-500-color{color: var(--wp--preset--color--gray-500) !important;}.has-gray-600-color{color: var(--wp--preset--color--gray-600) !important;}.has-gray-700-color{color: var(--wp--preset--color--gray-700) !important;}.has-gray-800-color{color: var(--wp--preset--color--gray-800) !important;}.has-gray-900-color{color: var(--wp--preset--color--gray-900) !important;}.has-gray-950-color{color: var(--wp--preset--color--gray-950) !important;}.has-zinc-50-color{color: var(--wp--preset--color--zinc-50) !important;}.has-zinc-100-color{color: var(--wp--preset--color--zinc-100) !important;}.has-zinc-200-color{color: var(--wp--preset--color--zinc-200) !important;}.has-zinc-300-color{color: var(--wp--preset--color--zinc-300) !important;}.has-zinc-400-color{color: var(--wp--preset--color--zinc-400) !important;}.has-zinc-500-color{color: var(--wp--preset--color--zinc-500) !important;}.has-zinc-600-color{color: var(--wp--preset--color--zinc-600) !important;}.has-zinc-700-color{color: var(--wp--preset--color--zinc-700) !important;}.has-zinc-800-color{color: var(--wp--preset--color--zinc-800) !important;}.has-zinc-900-color{color: var(--wp--preset--color--zinc-900) !important;}.has-zinc-950-color{color: var(--wp--preset--color--zinc-950) !important;}.has-neutral-50-color{color: var(--wp--preset--color--neutral-50) !important;}.has-neutral-100-color{color: var(--wp--preset--color--neutral-100) !important;}.has-neutral-200-color{color: var(--wp--preset--color--neutral-200) !important;}.has-neutral-300-color{color: var(--wp--preset--color--neutral-300) !important;}.has-neutral-400-color{color: var(--wp--preset--color--neutral-400) !important;}.has-neutral-500-color{color: var(--wp--preset--color--neutral-500) !important;}.has-neutral-600-color{color: var(--wp--preset--color--neutral-600) !important;}.has-neutral-700-color{color: var(--wp--preset--color--neutral-700) !important;}.has-neutral-800-color{color: var(--wp--preset--color--neutral-800) !important;}.has-neutral-900-color{color: var(--wp--preset--color--neutral-900) !important;}.has-neutral-950-color{color: var(--wp--preset--color--neutral-950) !important;}.has-stone-50-color{color: var(--wp--preset--color--stone-50) !important;}.has-stone-100-color{color: var(--wp--preset--color--stone-100) !important;}.has-stone-200-color{color: var(--wp--preset--color--stone-200) !important;}.has-stone-300-color{color: var(--wp--preset--color--stone-300) !important;}.has-stone-400-color{color: var(--wp--preset--color--stone-400) !important;}.has-stone-500-color{color: var(--wp--preset--color--stone-500) !important;}.has-stone-600-color{color: var(--wp--preset--color--stone-600) !important;}.has-stone-700-color{color: var(--wp--preset--color--stone-700) !important;}.has-stone-800-color{color: var(--wp--preset--color--stone-800) !important;}.has-stone-900-color{color: var(--wp--preset--color--stone-900) !important;}.has-stone-950-color{color: var(--wp--preset--color--stone-950) !important;}.has-red-50-color{color: var(--wp--preset--color--red-50) !important;}.has-red-100-color{color: var(--wp--preset--color--red-100) !important;}.has-red-200-color{color: var(--wp--preset--color--red-200) !important;}.has-red-300-color{color: var(--wp--preset--color--red-300) !important;}.has-red-400-color{color: var(--wp--preset--color--red-400) !important;}.has-red-500-color{color: var(--wp--preset--color--red-500) !important;}.has-red-600-color{color: var(--wp--preset--color--red-600) !important;}.has-red-700-color{color: var(--wp--preset--color--red-700) !important;}.has-red-800-color{color: var(--wp--preset--color--red-800) !important;}.has-red-900-color{color: var(--wp--preset--color--red-900) !important;}.has-red-950-color{color: var(--wp--preset--color--red-950) !important;}.has-orange-50-color{color: var(--wp--preset--color--orange-50) !important;}.has-orange-100-color{color: var(--wp--preset--color--orange-100) !important;}.has-orange-200-color{color: var(--wp--preset--color--orange-200) !important;}.has-orange-300-color{color: var(--wp--preset--color--orange-300) !important;}.has-orange-400-color{color: var(--wp--preset--color--orange-400) !important;}.has-orange-500-color{color: var(--wp--preset--color--orange-500) !important;}.has-orange-600-color{color: var(--wp--preset--color--orange-600) !important;}.has-orange-700-color{color: var(--wp--preset--color--orange-700) !important;}.has-orange-800-color{color: var(--wp--preset--color--orange-800) !important;}.has-orange-900-color{color: var(--wp--preset--color--orange-900) !important;}.has-orange-950-color{color: var(--wp--preset--color--orange-950) !important;}.has-amber-50-color{color: var(--wp--preset--color--amber-50) !important;}.has-amber-100-color{color: var(--wp--preset--color--amber-100) !important;}.has-amber-200-color{color: var(--wp--preset--color--amber-200) !important;}.has-amber-300-color{color: var(--wp--preset--color--amber-300) !important;}.has-amber-400-color{color: var(--wp--preset--color--amber-400) !important;}.has-amber-500-color{color: var(--wp--preset--color--amber-500) !important;}.has-amber-600-color{color: var(--wp--preset--color--amber-600) !important;}.has-amber-700-color{color: var(--wp--preset--color--amber-700) !important;}.has-amber-800-color{color: var(--wp--preset--color--amber-800) !important;}.has-amber-900-color{color: var(--wp--preset--color--amber-900) !important;}.has-amber-950-color{color: var(--wp--preset--color--amber-950) !important;}.has-yellow-50-color{color: var(--wp--preset--color--yellow-50) !important;}.has-yellow-100-color{color: var(--wp--preset--color--yellow-100) !important;}.has-yellow-200-color{color: var(--wp--preset--color--yellow-200) !important;}.has-yellow-300-color{color: var(--wp--preset--color--yellow-300) !important;}.has-yellow-400-color{color: var(--wp--preset--color--yellow-400) !important;}.has-yellow-500-color{color: var(--wp--preset--color--yellow-500) !important;}.has-yellow-600-color{color: var(--wp--preset--color--yellow-600) !important;}.has-yellow-700-color{color: var(--wp--preset--color--yellow-700) !important;}.has-yellow-800-color{color: var(--wp--preset--color--yellow-800) !important;}.has-yellow-900-color{color: var(--wp--preset--color--yellow-900) !important;}.has-yellow-950-color{color: var(--wp--preset--color--yellow-950) !important;}.has-lime-50-color{color: var(--wp--preset--color--lime-50) !important;}.has-lime-100-color{color: var(--wp--preset--color--lime-100) !important;}.has-lime-200-color{color: var(--wp--preset--color--lime-200) !important;}.has-lime-300-color{color: var(--wp--preset--color--lime-300) !important;}.has-lime-400-color{color: var(--wp--preset--color--lime-400) !important;}.has-lime-500-color{color: var(--wp--preset--color--lime-500) !important;}.has-lime-600-color{color: var(--wp--preset--color--lime-600) !important;}.has-lime-700-color{color: var(--wp--preset--color--lime-700) !important;}.has-lime-800-color{color: var(--wp--preset--color--lime-800) !important;}.has-lime-900-color{color: var(--wp--preset--color--lime-900) !important;}.has-lime-950-color{color: var(--wp--preset--color--lime-950) !important;}.has-green-50-color{color: var(--wp--preset--color--green-50) !important;}.has-green-100-color{color: var(--wp--preset--color--green-100) !important;}.has-green-200-color{color: var(--wp--preset--color--green-200) !important;}.has-green-300-color{color: var(--wp--preset--color--green-300) !important;}.has-green-400-color{color: var(--wp--preset--color--green-400) !important;}.has-green-500-color{color: var(--wp--preset--color--green-500) !important;}.has-green-600-color{color: var(--wp--preset--color--green-600) !important;}.has-green-700-color{color: var(--wp--preset--color--green-700) !important;}.has-green-800-color{color: var(--wp--preset--color--green-800) !important;}.has-green-900-color{color: var(--wp--preset--color--green-900) !important;}.has-green-950-color{color: var(--wp--preset--color--green-950) !important;}.has-emerald-50-color{color: var(--wp--preset--color--emerald-50) !important;}.has-emerald-100-color{color: var(--wp--preset--color--emerald-100) !important;}.has-emerald-200-color{color: var(--wp--preset--color--emerald-200) !important;}.has-emerald-300-color{color: var(--wp--preset--color--emerald-300) !important;}.has-emerald-400-color{color: var(--wp--preset--color--emerald-400) !important;}.has-emerald-500-color{color: var(--wp--preset--color--emerald-500) !important;}.has-emerald-600-color{color: var(--wp--preset--color--emerald-600) !important;}.has-emerald-700-color{color: var(--wp--preset--color--emerald-700) !important;}.has-emerald-800-color{color: var(--wp--preset--color--emerald-800) !important;}.has-emerald-900-color{color: var(--wp--preset--color--emerald-900) !important;}.has-emerald-950-color{color: var(--wp--preset--color--emerald-950) !important;}.has-teal-50-color{color: var(--wp--preset--color--teal-50) !important;}.has-teal-100-color{color: var(--wp--preset--color--teal-100) !important;}.has-teal-200-color{color: var(--wp--preset--color--teal-200) !important;}.has-teal-300-color{color: var(--wp--preset--color--teal-300) !important;}.has-teal-400-color{color: var(--wp--preset--color--teal-400) !important;}.has-teal-500-color{color: var(--wp--preset--color--teal-500) !important;}.has-teal-600-color{color: var(--wp--preset--color--teal-600) !important;}.has-teal-700-color{color: var(--wp--preset--color--teal-700) !important;}.has-teal-800-color{color: var(--wp--preset--color--teal-800) !important;}.has-teal-900-color{color: var(--wp--preset--color--teal-900) !important;}.has-teal-950-color{color: var(--wp--preset--color--teal-950) !important;}.has-cyan-50-color{color: var(--wp--preset--color--cyan-50) !important;}.has-cyan-100-color{color: var(--wp--preset--color--cyan-100) !important;}.has-cyan-200-color{color: var(--wp--preset--color--cyan-200) !important;}.has-cyan-300-color{color: var(--wp--preset--color--cyan-300) !important;}.has-cyan-400-color{color: var(--wp--preset--color--cyan-400) !important;}.has-cyan-500-color{color: var(--wp--preset--color--cyan-500) !important;}.has-cyan-600-color{color
87: var(--wp--preset--color--cyan-600) !important;}.has-cyan-700-color{color: var(--wp--preset--color--cyan-700) !important;}.has-cyan-800-color{color: var(--wp--preset--color--cyan-800) !important;}.has-cyan-900-color{color: var(--wp--preset--color--cyan-900) !important;}.has-cyan-950-color{color: var(--wp--preset--color--cyan-950) !important;}.has-sky-50-color{color: var(--wp--preset--color--sky-50) !important;}.has-sky-100-color{color: var(--wp--preset--color--sky-100) !important;}.has-sky-200-color{color: var(--wp--preset--color--sky-200) !important;}.has-sky-300-color{color: var(--wp--preset--color--sky-300) !important;}.has-sky-400-color{color: var(--wp--preset--color--sky-400) !important;}.has-sky-500-color{color: var(--wp--preset--color--sky-500) !important;}.has-sky-600-color{color: var(--wp--preset--color--sky-600) !important;}.has-sky-700-color{color: var(--wp--preset--color--sky-700) !important;}.has-sky-800-color{color: var(--wp--preset--color--sky-800) !important;}.has-sky-900-color{color: var(--wp--preset--color--sky-900) !important;}.has-sky-950-color{color: var(--wp--preset--color--sky-950) !important;}.has-blue-50-color{color: var(--wp--preset--color--blue-50) !important;}.has-blue-100-color{color: var(--wp--preset--color--blue-100) !important;}.has-blue-200-color{color: var(--wp--preset--color--blue-200) !important;}.has-blue-300-color{color: var(--wp--preset--color--blue-300) !important;}.has-blue-400-color{color: var(--wp--preset--color--blue-400) !important;}.has-blue-500-color{color: var(--wp--preset--color--blue-500) !important;}.has-blue-600-color{color: var(--wp--preset--color--blue-600) !important;}.has-blue-700-color{color: var(--wp--preset--color--blue-700) !important;}.has-blue-800-color{color: var(--wp--preset--color--blue-800) !important;}.has-blue-900-color{color: var(--wp--preset--color--blue-900) !important;}.has-blue-950-color{color: var(--wp--preset--color--blue-950) !important;}.has-indigo-50-color{color: var(--wp--preset--color--indigo-50) !important;}.has-indigo-100-color{color: var(--wp--preset--color--indigo-100) !important;}.has-indigo-200-color{color: var(--wp--preset--color--indigo-200) !important;}.has-indigo-300-color{color: var(--wp--preset--color--indigo-300) !important;}.has-indigo-400-color{color: var(--wp--preset--color--indigo-400) !important;}.has-indigo-500-color{color: var(--wp--preset--color--indigo-500) !important;}.has-indigo-600-color{color: var(--wp--preset--color--indigo-600) !important;}.has-indigo-700-color{color: var(--wp--preset--color--indigo-700) !important;}.has-indigo-800-color{color: var(--wp--preset--color--indigo-800) !important;}.has-indigo-900-color{color: var(--wp--preset--color--indigo-900) !important;}.has-indigo-950-color{color: var(--wp--preset--color--indigo-950) !important;}.has-violet-50-color{color: var(--wp--preset--color--violet-50) !important;}.has-violet-100-color{color: var(--wp--preset--color--violet-100) !important;}.has-violet-200-color{color: var(--wp--preset--color--violet-200) !important;}.has-violet-300-color{color: var(--wp--preset--color--violet-300) !important;}.has-violet-400-color{color: var(--wp--preset--color--violet-400) !important;}.has-violet-500-color{color: var(--wp--preset--color--violet-500) !important;}.has-violet-600-color{color: var(--wp--preset--color--violet-600) !important;}.has-violet-700-color{color: var(--wp--preset--color--violet-700) !important;}.has-violet-800-color{color: var(--wp--preset--color--violet-800) !important;}.has-violet-900-color{color: var(--wp--preset--color--violet-900) !important;}.has-violet-950-color{color: var(--wp--preset--color--violet-950) !important;}.has-purple-50-color{color: var(--wp--preset--color--purple-50) !important;}.has-purple-100-color{color: var(--wp--preset--color--purple-100) !important;}.has-purple-200-color{color: var(--wp--preset--color--purple-200) !important;}.has-purple-300-color{color: var(--wp--preset--color--purple-300) !important;}.has-purple-400-color{color: var(--wp--preset--color--purple-400) !important;}.has-purple-500-color{color: var(--wp--preset--color--purple-500) !important;}.has-purple-600-color{color: var(--wp--preset--color--purple-600) !important;}.has-purple-700-color{color: var(--wp--preset--color--purple-700) !important;}.has-purple-800-color{color: var(--wp--preset--color--purple-800) !important;}.has-purple-900-color{color: var(--wp--preset--color--purple-900) !important;}.has-purple-950-color{color: var(--wp--preset--color--purple-950) !important;}.has-fuchsia-50-color{color: var(--wp--preset--color--fuchsia-50) !important;}.has-fuchsia-100-color{color: var(--wp--preset--color--fuchsia-100) !important;}.has-fuchsia-200-color{color: var(--wp--preset--color--fuchsia-200) !important;}.has-fuchsia-300-color{color: var(--wp--preset--color--fuchsia-300) !important;}.has-fuchsia-400-color{color: var(--wp--preset--color--fuchsia-400) !important;}.has-fuchsia-500-color{color: var(--wp--preset--color--fuchsia-500) !important;}.has-fuchsia-600-color{color: var(--wp--preset--color--fuchsia-600) !important;}.has-fuchsia-700-color{color: var(--wp--preset--color--fuchsia-700) !important;}.has-fuchsia-800-color{color: var(--wp--preset--color--fuchsia-800) !important;}.has-fuchsia-900-color{color: var(--wp--preset--color--fuchsia-900) !important;}.has-fuchsia-950-color{color: var(--wp--preset--color--fuchsia-950) !important;}.has-pink-50-color{color: var(--wp--preset--color--pink-50) !important;}.has-pink-100-color{color: var(--wp--preset--color--pink-100) !important;}.has-pink-200-color{color: var(--wp--preset--color--pink-200) !important;}.has-pink-300-color{color: var(--wp--preset--color--pink-300) !important;}.has-pink-400-color{color: var(--wp--preset--color--pink-400) !important;}.has-pink-500-color{color: var(--wp--preset--color--pink-500) !important;}.has-pink-600-color{color: var(--wp--preset--color--pink-600) !important;}.has-pink-700-color{color: var(--wp--preset--color--pink-700) !important;}.has-pink-800-color{color: var(--wp--preset--color--pink-800) !important;}.has-pink-900-color{color: var(--wp--preset--color--pink-900) !important;}.has-pink-950-color{color: var(--wp--preset--color--pink-950) !important;}.has-rose-50-color{color: var(--wp--preset--color--rose-50) !important;}.has-rose-100-color{color: var(--wp--preset--color--rose-100) !important;}.has-rose-200-color{color: var(--wp--preset--color--rose-200) !important;}.has-rose-300-color{color: var(--wp--preset--color--rose-300) !important;}.has-rose-400-color{color: var(--wp--preset--color--rose-400) !important;}.has-rose-500-color{color: var(--wp--preset--color--rose-500) !important;}.has-rose-600-color{color: var(--wp--preset--color--rose-600) !important;}.has-rose-700-color{color: var(--wp--preset--color--rose-700) !important;}.has-rose-800-color{color: var(--wp--preset--color--rose-800) !important;}.has-rose-900-color{color: var(--wp--preset--color--rose-900) !important;}.has-rose-950-color{color: var(--wp--preset--color--rose-950) !important;}.has-lightgrey-color{color: var(--wp--preset--color--lightgrey) !important;}.has-heading-color{color: var(--wp--preset--color--heading) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-inherit-background-color{background-color: var(--wp--preset--color--inherit) !important;}.has-current-background-color{background-color: var(--wp--preset--color--current) !important;}.has-transparent-background-color{background-color: var(--wp--preset--color--transparent) !important;}.has-slate-50-background-color{background-color: var(--wp--preset--color--slate-50) !important;}.has-slate-100-background-color{background-color: var(--wp--preset--color--slate-100) !important;}.has-slate-200-background-color{background-color: var(--wp--preset--color--slate-200) !important;}.has-slate-300-background-color{background-color: var(--wp--preset--color--slate-300) !important;}.has-slate-400-background-color{background-color: var(--wp--preset--color--slate-400) !important;}.has-slate-500-background-color{background-color: var(--wp--preset--color--slate-500) !important;}.has-slate-600-background-color{background-color: var(--wp--preset--color--slate-600) !important;}.has-slate-700-background-color{background-color: var(--wp--preset--color--slate-700) !important;}.has-slate-800-background-color{background-color: var(--wp--preset--color--slate-800) !important;}.has-slate-900-background-color{background-color: var(--wp--preset--color--slate-900) !important;}.has-slate-950-background-color{background-color: var(--wp--preset--color--slate-950) !important;}.has-gray-50-background-color{background-color: var(--wp--preset--color--gray-50) !important;}.has-gray-100-background-color{background-color: var(--wp--preset--color--gray-100) !important;}.has-gray-200-background-color{background-color: var(--wp--preset--color--gray-200) !important;}.has-gray-300-background-color{background-color: var(--wp--preset--color--gray-300) !important;}.has-gray-400-background-color{background-color: var(--wp--preset--color--gray-400) !important;}.has-gray-500-background-color{background-color: var(--wp--preset--color--gray-500) !important;}.has-gray-600-background-color{background-color: var(--wp--preset--color--gray-600) !important;}.has-gray-700-background-color{background-color: var(--wp--preset--color--gray-700) !important;}.has-gray-800-background-color{background-color: var(--wp--preset--color--gray-800) !important;}.has-gray-900-background-color{background-color: var(--wp--preset--color--gray-900) !important;}.has-gray-950-background-color{background-color: var(--wp--preset--color--gray-950) !important;}.has-zinc-50-background-color{background-color: var(--wp--preset--color--zinc-50) !important;}.has-zinc-100-background-color{background-color: var(--wp--preset--color--zinc-100) !important;}.has-zinc-200-background-color{background-color: var(--wp--preset--color--zinc-200) !important;}.has-zinc-300-background-color{background-color: var(--wp--preset--color--zinc-300) !important;}.has-zinc-400-background-color{background-color: var(--wp--preset--color--zinc-400) !important;}.has-zinc-500-background-color{background-color: var(--wp--preset--color--zinc-500) !important;}.has-zinc-600-background-color{background-color: var(--wp--preset--color--zinc-600) !important;}.has-zinc-700-background-color{background-color: var(--wp--preset--color--zinc-700) !important;}.has-zinc-800-background-color{background-color: var(--wp--preset--color--zinc-800) !important;}.has-zinc-900-background-color{background-color: var(--wp--preset--color--zinc-900) !important;}.has-zinc-950-background-color{background-color: var(--wp--preset--color--zinc-950) !important;}.has-neutral-50-background-color{background-color: var(--wp--preset--color--neutral-50) !important;}.has-neutral-100-background-color{background-color: var(--wp--preset--color--neutral-100) !important;}.has-neutral-200-background-color{background-color: var(--wp--preset--color--neutral-200) !important;}.has-neutral-300-background-color{background-color: var(--wp--preset--color--neutral-300) !important;}.has-neutral-400-background-color{background-color: var(--wp--preset--color--neutral-400) !important;}.has-neutral-500-background-color{background-color: var(--wp--preset--color--neutral-500) !important;}.has-neutral-600-background-color{background-color: var(--wp--preset--color--neutral-600) !important;}.has-neutral-700-background-color{background-color: var(--wp--preset--color--neutral-700) !important;}.has-neutral-800-background-color{background-color: var(--wp--preset--color--neutral-800) !important;}.has-neutral-900-background-color{background-color: var(--wp--preset--color--neutral-900) !important;}.has-neutral-950-background-color{background-color: var(--wp--preset--color--neutral-950) !important;}.has-stone-50-background-color{background-color: var(--wp--preset--color--stone-50) !important;}.has-stone-100-background-color{background-color: var(--wp--preset--color--stone-100) !important;}.has-stone-200-background-color{background-color: var(--wp--preset--color--stone-200) !important;}.has-stone-300-background-color{background-color: var(--wp--preset--color--stone-300) !important;}.has-stone-400-background-color{background-color: var(--wp--preset--color--stone-400) !important;}.has-stone-500-background-color{background-color: var(--wp--preset--color--stone-500) !important;}.has-stone-600-background-color{background-color: var(--wp--preset--color--stone-600) !important;}.has-stone-700-background-color{background-color: var(--wp--preset--color--stone-700) !important;}.has-stone-800-background-color{background-color: var(--wp--preset--color--stone-800) !important;}.has-stone-900-background-color{background-color: var(--wp--preset--color--stone-900) !important;}.has-stone-950-background-color{background-color: var(--wp--preset--color--stone-950) !important;}.has-red-50-background-color{background-color: var(--wp--preset--color--red-50) !important;}.has-red-100-background-color{background-color: var(--wp--preset--color--red-100) !important;}.has-red-200-background-color{background-color: var(--wp--preset--color--red-200) !important;}.has-red-300-background-color{background-color: var(--wp--preset--color--red-300) !important;}.has-red-400-background-color{background-color: var(--wp--preset--color--red-400) !important;}.has-red-500-background-color{background-color: var(--wp--preset--color--red-500) !important;}.has-red-600-background-color{background-color: var(--wp--preset--color--red-600) !important;}.has-red-700-background-color{background-color: var(--wp--preset--color--red-700) !important;}.has-red-800-background-color{background-color: var(--wp--preset--color--red-800) !important;}.has-red-900-background-color{background-color: var(--wp--preset--color--red-900) !important;}.has-red-950-background-color{background-color: var(--wp--preset--color--red-950) !important;}.has-orange-50-background-color{background-color: var(--wp--preset--color--orange-50) !important;}.has-orange-100-background-color{background-color: var(--wp--preset--color--orange-100) !important;}.has-orange-200-background-color{background-color: var(--wp--preset--color--orange-200) !important;}.has-orange-300-background-color{background-color: var(--wp--preset--color--orange-300) !important;}.has-orange-400-background-color{background-color: var(--wp--preset--color--orange-400) !important;}.has-orange-500-background-color{background-color: var(--wp--preset--color--orange-500) !important;}.has-orange-600-background-color{background-color: var(--wp--preset--color--orange-600) !important;}.has-orange-700-background-color{background-color: var(--wp--preset--color--orange-700) !important;}.has-orange-800-background-color{background-color: var(--wp--preset--color--orange-800) !important;}.has-orange-900-background-color{background-color: var(--wp--preset--color--orange-900) !important;}.has-orange-950-background-color{background-color: var(--wp--preset--color--orange-950) !important;}.has-amber-50-background-color{background-color: var(--wp--preset--color--amber-50) !important;}.has-amber-100-background-color{background-colo
87r: var(--wp--preset--color--amber-100) !important;}.has-amber-200-background-color{background-color: var(--wp--preset--color--amber-200) !important;}.has-amber-300-background-color{background-color: var(--wp--preset--color--amber-300) !important;}.has-amber-400-background-color{background-color: var(--wp--preset--color--amber-400) !important;}.has-amber-500-background-color{background-color: var(--wp--preset--color--amber-500) !important;}.has-amber-600-background-color{background-color: var(--wp--preset--color--amber-600) !important;}.has-amber-700-background-color{background-color: var(--wp--preset--color--amber-700) !important;}.has-amber-800-background-color{background-color: var(--wp--preset--color--amber-800) !important;}.has-amber-900-background-color{background-color: var(--wp--preset--color--amber-900) !important;}.has-amber-950-background-color{background-color: var(--wp--preset--color--amber-950) !important;}.has-yellow-50-background-color{background-color: var(--wp--preset--color--yellow-50) !important;}.has-yellow-100-background-color{background-color: var(--wp--preset--color--yellow-100) !important;}.has-yellow-200-background-color{background-color: var(--wp--preset--color--yellow-200) !important;}.has-yellow-300-background-color{background-color: var(--wp--preset--color--yellow-300) !important;}.has-yellow-400-background-color{background-color: var(--wp--preset--color--yellow-400) !important;}.has-yellow-500-background-color{background-color: var(--wp--preset--color--yellow-500) !important;}.has-yellow-600-background-color{background-color: var(--wp--preset--color--yellow-600) !important;}.has-yellow-700-background-color{background-color: var(--wp--preset--color--yellow-700) !important;}.has-yellow-800-background-color{background-color: var(--wp--preset--color--yellow-800) !important;}.has-yellow-900-background-color{background-color: var(--wp--preset--color--yellow-900) !important;}.has-yellow-950-background-color{background-color: var(--wp--preset--color--yellow-950) !important;}.has-lime-50-background-color{background-color: var(--wp--preset--color--lime-50) !important;}.has-lime-100-background-color{background-color: var(--wp--preset--color--lime-100) !important;}.has-lime-200-background-color{background-color: var(--wp--preset--color--lime-200) !important;}.has-lime-300-background-color{background-color: var(--wp--preset--color--lime-300) !important;}.has-lime-400-background-color{background-color: var(--wp--preset--color--lime-400) !important;}.has-lime-500-background-color{background-color: var(--wp--preset--color--lime-500) !important;}.has-lime-600-background-color{background-color: var(--wp--preset--color--lime-600) !important;}.has-lime-700-background-color{background-color: var(--wp--preset--color--lime-700) !important;}.has-lime-800-background-color{background-color: var(--wp--preset--color--lime-800) !important;}.has-lime-900-background-color{background-color: var(--wp--preset--color--lime-900) !important;}.has-lime-950-background-color{background-color: var(--wp--preset--color--lime-950) !important;}.has-green-50-background-color{background-color: var(--wp--preset--color--green-50) !important;}.has-green-100-background-color{background-color: var(--wp--preset--color--green-100) !important;}.has-green-200-background-color{background-color: var(--wp--preset--color--green-200) !important;}.has-green-300-background-color{background-color: var(--wp--preset--color--green-300) !important;}.has-green-400-background-color{background-color: var(--wp--preset--color--green-400) !important;}.has-green-500-background-color{background-color: var(--wp--preset--color--green-500) !important;}.has-green-600-background-color{background-color: var(--wp--preset--color--green-600) !important;}.has-green-700-background-color{background-color: var(--wp--preset--color--green-700) !important;}.has-green-800-background-color{background-color: var(--wp--preset--color--green-800) !important;}.has-green-900-background-color{background-color: var(--wp--preset--color--green-900) !important;}.has-green-950-background-color{background-color: var(--wp--preset--color--green-950) !important;}.has-emerald-50-background-color{background-color: var(--wp--preset--color--emerald-50) !important;}.has-emerald-100-background-color{background-color: var(--wp--preset--color--emerald-100) !important;}.has-emerald-200-background-color{background-color: var(--wp--preset--color--emerald-200) !important;}.has-emerald-300-background-color{background-color: var(--wp--preset--color--emerald-300) !important;}.has-emerald-400-background-color{background-color: var(--wp--preset--color--emerald-400) !important;}.has-emerald-500-background-color{background-color: var(--wp--preset--color--emerald-500) !important;}.has-emerald-600-background-color{background-color: var(--wp--preset--color--emerald-600) !important;}.has-emerald-700-background-color{background-color: var(--wp--preset--color--emerald-700) !important;}.has-emerald-800-background-color{background-color: var(--wp--preset--color--emerald-800) !important;}.has-emerald-900-background-color{background-color: var(--wp--preset--color--emerald-900) !important;}.has-emerald-950-background-color{background-color: var(--wp--preset--color--emerald-950) !important;}.has-teal-50-background-color{background-color: var(--wp--preset--color--teal-50) !important;}.has-teal-100-background-color{background-color: var(--wp--preset--color--teal-100) !important;}.has-teal-200-background-color{background-color: var(--wp--preset--color--teal-200) !important;}.has-teal-300-background-color{background-color: var(--wp--preset--color--teal-300) !important;}.has-teal-400-background-color{background-color: var(--wp--preset--color--teal-400) !important;}.has-teal-500-background-color{background-color: var(--wp--preset--color--teal-500) !important;}.has-teal-600-background-color{background-color: var(--wp--preset--color--teal-600) !important;}.has-teal-700-background-color{background-color: var(--wp--preset--color--teal-700) !important;}.has-teal-800-background-color{background-color: var(--wp--preset--color--teal-800) !important;}.has-teal-900-background-color{background-color: var(--wp--preset--color--teal-900) !important;}.has-teal-950-background-color{background-color: var(--wp--preset--color--teal-950) !important;}.has-cyan-50-background-color{background-color: var(--wp--preset--color--cyan-50) !important;}.has-cyan-100-background-color{background-color: var(--wp--preset--color--cyan-100) !important;}.has-cyan-200-background-color{background-color: var(--wp--preset--color--cyan-200) !important;}.has-cyan-300-background-color{background-color: var(--wp--preset--color--cyan-300) !important;}.has-cyan-400-background-color{background-color: var(--wp--preset--color--cyan-400) !important;}.has-cyan-500-background-color{background-color: var(--wp--preset--color--cyan-500) !important;}.has-cyan-600-background-color{background-color: var(--wp--preset--color--cyan-600) !important;}.has-cyan-700-background-color{background-color: var(--wp--preset--color--cyan-700) !important;}.has-cyan-800-background-color{background-color: var(--wp--preset--color--cyan-800) !important;}.has-cyan-900-background-color{background-color: var(--wp--preset--color--cyan-900) !important;}.has-cyan-950-background-color{background-color: var(--wp--preset--color--cyan-950) !important;}.has-sky-50-background-color{background-color: var(--wp--preset--color--sky-50) !important;}.has-sky-100-background-color{background-color: var(--wp--preset--color--sky-100) !important;}.has-sky-200-background-color{background-color: var(--wp--preset--color--sky-200) !important;}.has-sky-300-background-color{background-color: var(--wp--preset--color--sky-300) !important;}.has-sky-400-background-color{background-color: var(--wp--preset--color--sky-400) !important;}.has-sky-500-background-color{background-color: var(--wp--preset--color--sky-500) !important;}.has-sky-600-background-color{background-color: var(--wp--preset--color--sky-600) !important;}.has-sky-700-background-color{background-color: var(--wp--preset--color--sky-700) !important;}.has-sky-800-background-color{background-color: var(--wp--preset--color--sky-800) !important;}.has-sky-900-background-color{background-color: var(--wp--preset--color--sky-900) !important;}.has-sky-950-background-color{background-color: var(--wp--preset--color--sky-950) !important;}.has-blue-50-background-color{background-color: var(--wp--preset--color--blue-50) !important;}.has-blue-100-background-color{background-color: var(--wp--preset--color--blue-100) !important;}.has-blue-200-background-color{background-color: var(--wp--preset--color--blue-200) !important;}.has-blue-300-background-color{background-color: var(--wp--preset--color--blue-300) !important;}.has-blue-400-background-color{background-color: var(--wp--preset--color--blue-400) !important;}.has-blue-500-background-color{background-color: var(--wp--preset--color--blue-500) !important;}.has-blue-600-background-color{background-color: var(--wp--preset--color--blue-600) !important;}.has-blue-700-background-color{background-color: var(--wp--preset--color--blue-700) !important;}.has-blue-800-background-color{background-color: var(--wp--preset--color--blue-800) !important;}.has-blue-900-background-color{background-color: var(--wp--preset--color--blue-900) !important;}.has-blue-950-background-color{background-color: var(--wp--preset--color--blue-950) !important;}.has-indigo-50-background-color{background-color: var(--wp--preset--color--indigo-50) !important;}.has-indigo-100-background-color{background-color: var(--wp--preset--color--indigo-100) !important;}.has-indigo-200-background-color{background-color: var(--wp--preset--color--indigo-200) !important;}.has-indigo-300-background-color{background-color: var(--wp--preset--color--indigo-300) !important;}.has-indigo-400-background-color{background-color: var(--wp--preset--color--indigo-400) !important;}.has-indigo-500-background-color{background-color: var(--wp--preset--color--indigo-500) !important;}.has-indigo-600-background-color{background-color: var(--wp--preset--color--indigo-600) !important;}.has-indigo-700-background-color{background-color: var(--wp--preset--color--indigo-700) !important;}.has-indigo-800-background-color{background-color: var(--wp--preset--color--indigo-800) !important;}.has-indigo-900-background-color{background-color: var(--wp--preset--color--indigo-900) !important;}.has-indigo-950-background-color{background-color: var(--wp--preset--color--indigo-950) !important;}.has-violet-50-background-color{background-color: var(--wp--preset--color--violet-50) !important;}.has-violet-100-background-color{background-color: var(--wp--preset--color--violet-100) !important;}.has-violet-200-background-color{background-color: var(--wp--preset--color--violet-200) !important;}.has-violet-300-background-color{background-color: var(--wp--preset--color--violet-300) !important;}.has-violet-400-background-color{background-color: var(--wp--preset--color--violet-400) !important;}.has-violet-500-background-color{background-color: var(--wp--preset--color--violet-500) !important;}.has-violet-600-background-color{background-color: var(--wp--preset--color--violet-600) !important;}.has-violet-700-background-color{background-color: var(--wp--preset--color--violet-700) !important;}.has-violet-800-background-color{background-color: var(--wp--preset--color--violet-800) !important;}.has-violet-900-background-color{background-color: var(--wp--preset--color--violet-900) !important;}.has-violet-950-background-color{background-color: var(--wp--preset--color--violet-950) !important;}.has-purple-50-background-color{background-color: var(--wp--preset--color--purple-50) !important;}.has-purple-100-background-color{background-color: var(--wp--preset--color--purple-100) !important;}.has-purple-200-background-color{background-color: var(--wp--preset--color--purple-200) !important;}.has-purple-300-background-color{background-color: var(--wp--preset--color--purple-300) !important;}.has-purple-400-background-color{background-color: var(--wp--preset--color--purple-400) !important;}.has-purple-500-background-color{background-color: var(--wp--preset--color--purple-500) !important;}.has-purple-600-background-color{background-color: var(--wp--preset--color--purple-600) !important;}.has-purple-700-background-color{background-color: var(--wp--preset--color--purple-700) !important;}.has-purple-800-background-color{background-color: var(--wp--preset--color--purple-800) !important;}.has-purple-900-background-color{background-color: var(--wp--preset--color--purple-900) !important;}.has-purple-950-background-color{background-color: var(--wp--preset--color--purple-950) !important;}.has-fuchsia-50-background-color{background-color: var(--wp--preset--color--fuchsia-50) !important;}.has-fuchsia-100-background-color{background-color: var(--wp--preset--color--fuchsia-100) !important;}.has-fuchsia-200-background-color{background-color: var(--wp--preset--color--fuchsia-200) !important;}.has-fuchsia-300-background-color{background-color: var(--wp--preset--color--fuchsia-300) !important;}.has-fuchsia-400-background-color{background-color: var(--wp--preset--color--fuchsia-400) !important;}.has-fuchsia-500-background-color{background-color: var(--wp--preset--color--fuchsia-500) !important;}.has-fuchsia-600-background-color{background-color: var(--wp--preset--color--fuchsia-600) !important;}.has-fuchsia-700-background-color{background-color: var(--wp--preset--color--fuchsia-700) !important;}.has-fuchsia-800-background-color{background-color: var(--wp--preset--color--fuchsia-800) !important;}.has-fuchsia-900-background-color{background-color: var(--wp--preset--color--fuchsia-900) !important;}.has-fuchsia-950-background-color{background-color: var(--wp--preset--color--fuchsia-950) !important;}.has-pink-50-background-color{background-color: var(--wp--preset--color--pink-50) !important;}.has-pink-100-background-color{background-color: var(--wp--preset--color--pink-100) !important;}.has-pink-200-background-color{background-color: var(--wp--preset--color--pink-200) !important;}.has-pink-300-background-color{background-color: var(--wp--preset--color--pink-300) !important;}.has-pink-400-background-color{background-color: var(--wp--preset--color--pink-400) !important;}.has-pink-500-background-color{background-color: var(--wp--preset--color--pink-500) !important;}.has-pink-600-background-color{background-color: var(--wp--preset--color--pink-600) !important;}.has-pink-700-background-color{background-color: var(--wp--preset--color--pink-700) !important;}.has-pink-800-background-color{background-color: var(--wp--preset--color--pink-800) !important;}.has-pink-900-background-color{background-color: var(--wp--preset--color--pink-900) !important;}.has-pink-950-background-color{background-color: var(--wp--preset--color--pink-950) !important;}.has-rose-50-background-color{background-color: var(--wp--preset--color--rose-50) !important;}.has-rose-100-background-color{background-color: var(--wp--preset--color--rose-100) !important;}.has-rose-200-background-color{background-color: var(--wp--preset--color--rose-200) !important;}.has-rose-300-background-color{background-color: var(--wp--preset--color--rose-300) !important;}.has-rose-400-background-color{background-color: var(--wp--preset--color--rose-400) !important;}.has-rose-500-background-color{background-color: var(--wp--preset--color--rose-500) !important;}.has-rose-600-background-color{background-color: var(--wp--preset--color--rose-600) !important;}.has-rose-700-background-color{background-color: var(--wp--preset--color--rose-700) !important;}.has-rose-800-background-color{background-color: var(--wp--preset--color--rose-800) !important;}.has-rose-900-background-color{background-color: var(--wp--preset--color--rose-900) !important;}.has-rose-950-background-color{background-color: var(--wp--preset--color--rose-950) !important;}.has-lightgrey-background-color{background-color: var(--wp--preset--color--lightgrey) !important;}.has-heading-background-color{background-color: var(--wp--preset--color--heading) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-whit
87e-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-inherit-border-color{border-color: var(--wp--preset--color--inherit) !important;}.has-current-border-color{border-color: var(--wp--preset--color--current) !important;}.has-transparent-border-color{border-color: var(--wp--preset--color--transparent) !important;}.has-slate-50-border-color{border-color: var(--wp--preset--color--slate-50) !important;}.has-slate-100-border-color{border-color: var(--wp--preset--color--slate-100) !important;}.has-slate-200-border-color{border-color: var(--wp--preset--color--slate-200) !important;}.has-slate-300-border-color{border-color: var(--wp--preset--color--slate-300) !important;}.has-slate-400-border-color{border-color: var(--wp--preset--color--slate-400) !important;}.has-slate-500-border-color{border-color: var(--wp--preset--color--slate-500) !important;}.has-slate-600-border-color{border-color: var(--wp--preset--color--slate-600) !important;}.has-slate-700-border-color{border-color: var(--wp--preset--color--slate-700) !important;}.has-slate-800-border-color{border-color: var(--wp--preset--color--slate-800) !important;}.has-slate-900-border-color{border-color: var(--wp--preset--color--slate-900) !important;}.has-slate-950-border-color{border-color: var(--wp--preset--color--slate-950) !important;}.has-gray-50-border-color{border-color: var(--wp--preset--color--gray-50) !important;}.has-gray-100-border-color{border-color: var(--wp--preset--color--gray-100) !important;}.has-gray-200-border-color{border-color: var(--wp--preset--color--gray-200) !important;}.has-gray-300-border-color{border-color: var(--wp--preset--color--gray-300) !important;}.has-gray-400-border-color{border-color: var(--wp--preset--color--gray-400) !important;}.has-gray-500-border-color{border-color: var(--wp--preset--color--gray-500) !important;}.has-gray-600-border-color{border-color: var(--wp--preset--color--gray-600) !important;}.has-gray-700-border-color{border-color: var(--wp--preset--color--gray-700) !important;}.has-gray-800-border-color{border-color: var(--wp--preset--color--gray-800) !important;}.has-gray-900-border-color{border-color: var(--wp--preset--color--gray-900) !important;}.has-gray-950-border-color{border-color: var(--wp--preset--color--gray-950) !important;}.has-zinc-50-border-color{border-color: var(--wp--preset--color--zinc-50) !important;}.has-zinc-100-border-color{border-color: var(--wp--preset--color--zinc-100) !important;}.has-zinc-200-border-color{border-color: var(--wp--preset--color--zinc-200) !important;}.has-zinc-300-border-color{border-color: var(--wp--preset--color--zinc-300) !important;}.has-zinc-400-border-color{border-color: var(--wp--preset--color--zinc-400) !important;}.has-zinc-500-border-color{border-color: var(--wp--preset--color--zinc-500) !important;}.has-zinc-600-border-color{border-color: var(--wp--preset--color--zinc-600) !important;}.has-zinc-700-border-color{border-color: var(--wp--preset--color--zinc-700) !important;}.has-zinc-800-border-color{border-color: var(--wp--preset--color--zinc-800) !important;}.has-zinc-900-border-color{border-color: var(--wp--preset--color--zinc-900) !important;}.has-zinc-950-border-color{border-color: var(--wp--preset--color--zinc-950) !important;}.has-neutral-50-border-color{border-color: var(--wp--preset--color--neutral-50) !important;}.has-neutral-100-border-color{border-color: var(--wp--preset--color--neutral-100) !important;}.has-neutral-200-border-color{border-color: var(--wp--preset--color--neutral-200) !important;}.has-neutral-300-border-color{border-color: var(--wp--preset--color--neutral-300) !important;}.has-neutral-400-border-color{border-color: var(--wp--preset--color--neutral-400) !important;}.has-neutral-500-border-color{border-color: var(--wp--preset--color--neutral-500) !important;}.has-neutral-600-border-color{border-color: var(--wp--preset--color--neutral-600) !important;}.has-neutral-700-border-color{border-color: var(--wp--preset--color--neutral-700) !important;}.has-neutral-800-border-color{border-color: var(--wp--preset--color--neutral-800) !important;}.has-neutral-900-border-color{border-color: var(--wp--preset--color--neutral-900) !important;}.has-neutral-950-border-color{border-color: var(--wp--preset--color--neutral-950) !important;}.has-stone-50-border-color{border-color: var(--wp--preset--color--stone-50) !important;}.has-stone-100-border-color{border-color: var(--wp--preset--color--stone-100) !important;}.has-stone-200-border-color{border-color: var(--wp--preset--color--stone-200) !important;}.has-stone-300-border-color{border-color: var(--wp--preset--color--stone-300) !important;}.has-stone-400-border-color{border-color: var(--wp--preset--color--stone-400) !important;}.has-stone-500-border-color{border-color: var(--wp--preset--color--stone-500) !important;}.has-stone-600-border-color{border-color: var(--wp--preset--color--stone-600) !important;}.has-stone-700-border-color{border-color: var(--wp--preset--color--stone-700) !important;}.has-stone-800-border-color{border-color: var(--wp--preset--color--stone-800) !important;}.has-stone-900-border-color{border-color: var(--wp--preset--color--stone-900) !important;}.has-stone-950-border-color{border-color: var(--wp--preset--color--stone-950) !important;}.has-red-50-border-color{border-color: var(--wp--preset--color--red-50) !important;}.has-red-100-border-color{border-color: var(--wp--preset--color--red-100) !important;}.has-red-200-border-color{border-color: var(--wp--preset--color--red-200) !important;}.has-red-300-border-color{border-color: var(--wp--preset--color--red-300) !important;}.has-red-400-border-color{border-color: var(--wp--preset--color--red-400) !important;}.has-red-500-border-color{border-color: var(--wp--preset--color--red-500) !important;}.has-red-600-border-color{border-color: var(--wp--preset--color--red-600) !important;}.has-red-700-border-color{border-color: var(--wp--preset--color--red-700) !important;}.has-red-800-border-color{border-color: var(--wp--preset--color--red-800) !important;}.has-red-900-border-color{border-color: var(--wp--preset--color--red-900) !important;}.has-red-950-border-color{border-color: var(--wp--preset--color--red-950) !important;}.has-orange-50-border-color{border-color: var(--wp--preset--color--orange-50) !important;}.has-orange-100-border-color{border-color: var(--wp--preset--color--orange-100) !important;}.has-orange-200-border-color{border-color: var(--wp--preset--color--orange-200) !important;}.has-orange-300-border-color{border-color: var(--wp--preset--color--orange-300) !important;}.has-orange-400-border-color{border-color: var(--wp--preset--color--orange-400) !important;}.has-orange-500-border-color{border-color: var(--wp--preset--color--orange-500) !important;}.has-orange-600-border-color{border-color: var(--wp--preset--color--orange-600) !important;}.has-orange-700-border-color{border-color: var(--wp--preset--color--orange-700) !important;}.has-orange-800-border-color{border-color: var(--wp--preset--color--orange-800) !important;}.has-orange-900-border-color{border-color: var(--wp--preset--color--orange-900) !important;}.has-orange-950-border-color{border-color: var(--wp--preset--color--orange-950) !important;}.has-amber-50-border-color{border-color: var(--wp--preset--color--amber-50) !important;}.has-amber-100-border-color{border-color: var(--wp--preset--color--amber-100) !important;}.has-amber-200-border-color{border-color: var(--wp--preset--color--amber-200) !important;}.has-amber-300-border-color{border-color: var(--wp--preset--color--amber-300) !important;}.has-amber-400-border-color{border-color: var(--wp--preset--color--amber-400) !important;}.has-amber-500-border-color{border-color: var(--wp--preset--color--amber-500) !important;}.has-amber-600-border-color{border-color: var(--wp--preset--color--amber-600) !important;}.has-amber-700-border-color{border-color: var(--wp--preset--color--amber-700) !important;}.has-amber-800-border-color{border-color: var(--wp--preset--color--amber-800) !important;}.has-amber-900-border-color{border-color: var(--wp--preset--color--amber-900) !important;}.has-amber-950-border-color{border-color: var(--wp--preset--color--amber-950) !important;}.has-yellow-50-border-color{border-color: var(--wp--preset--color--yellow-50) !important;}.has-yellow-100-border-color{border-color: var(--wp--preset--color--yellow-100) !important;}.has-yellow-200-border-color{border-color: var(--wp--preset--color--yellow-200) !important;}.has-yellow-300-border-color{border-color: var(--wp--preset--color--yellow-300) !important;}.has-yellow-400-border-color{border-color: var(--wp--preset--color--yellow-400) !important;}.has-yellow-500-border-color{border-color: var(--wp--preset--color--yellow-500) !important;}.has-yellow-600-border-color{border-color: var(--wp--preset--color--yellow-600) !important;}.has-yellow-700-border-color{border-color: var(--wp--preset--color--yellow-700) !important;}.has-yellow-800-border-color{border-color: var(--wp--preset--color--yellow-800) !important;}.has-yellow-900-border-color{border-color: var(--wp--preset--color--yellow-900) !important;}.has-yellow-950-border-color{border-color: var(--wp--preset--color--yellow-950) !important;}.has-lime-50-border-color{border-color: var(--wp--preset--color--lime-50) !important;}.has-lime-100-border-color{border-color: var(--wp--preset--color--lime-100) !important;}.has-lime-200-border-color{border-color: var(--wp--preset--color--lime-200) !important;}.has-lime-300-border-color{border-color: var(--wp--preset--color--lime-300) !important;}.has-lime-400-border-color{border-color: var(--wp--preset--color--lime-400) !important;}.has-lime-500-border-color{border-color: var(--wp--preset--color--lime-500) !important;}.has-lime-600-border-color{border-color: var(--wp--preset--color--lime-600) !important;}.has-lime-700-border-color{border-color: var(--wp--preset--color--lime-700) !important;}.has-lime-800-border-color{border-color: var(--wp--preset--color--lime-800) !important;}.has-lime-900-border-color{border-color: var(--wp--preset--color--lime-900) !important;}.has-lime-950-border-color{border-color: var(--wp--preset--color--lime-950) !important;}.has-green-50-border-color{border-color: var(--wp--preset--color--green-50) !important;}.has-green-100-border-color{border-color: var(--wp--preset--color--green-100) !important;}.has-green-200-border-color{border-color: var(--wp--preset--color--green-200) !important;}.has-green-300-border-color{border-color: var(--wp--preset--color--green-300) !important;}.has-green-400-border-color{border-color: var(--wp--preset--color--green-400) !important;}.has-green-500-border-color{border-color: var(--wp--preset--color--green-500) !important;}.has-green-600-border-color{border-color: var(--wp--preset--color--green-600) !important;}.has-green-700-border-color{border-color: var(--wp--preset--color--green-700) !important;}.has-green-800-border-color{border-color: var(--wp--preset--color--green-800) !important;}.has-green-900-border-color{border-color: var(--wp--preset--color--green-900) !important;}.has-green-950-border-color{border-color: var(--wp--preset--color--green-950) !important;}.has-emerald-50-border-color{border-color: var(--wp--preset--color--emerald-50) !important;}.has-emerald-100-border-color{border-color: var(--wp--preset--color--emerald-100) !important;}.has-emerald-200-border-color{border-color: var(--wp--preset--color--emerald-200) !important;}.has-emerald-300-border-color{border-color: var(--wp--preset--color--emerald-300) !important;}.has-emerald-400-border-color{border-color: var(--wp--preset--color--emerald-400) !important;}.has-emerald-500-border-color{border-color: var(--wp--preset--color--emerald-500) !important;}.has-emerald-600-border-color{border-color: var(--wp--preset--color--emerald-600) !important;}.has-emerald-700-border-color{border-color: var(--wp--preset--color--emerald-700) !important;}.has-emerald-800-border-color{border-color: var(--wp--preset--color--emerald-800) !important;}.has-emerald-900-border-color{border-color: var(--wp--preset--color--emerald-900) !important;}.has-emerald-950-border-color{border-color: var(--wp--preset--color--emerald-950) !important;}.has-teal-50-border-color{border-color: var(--wp--preset--color--teal-50) !important;}.has-teal-100-border-color{border-color: var(--wp--preset--color--teal-100) !important;}.has-teal-200-border-color{border-color: var(--wp--preset--color--teal-200) !important;}.has-teal-300-border-color{border-color: var(--wp--preset--color--teal-300) !important;}.has-teal-400-border-color{border-color: var(--wp--preset--color--teal-400) !important;}.has-teal-500-border-color{border-color: var(--wp--preset--color--teal-500) !important;}.has-teal-600-border-color{border-color: var(--wp--preset--color--teal-600) !important;}.has-teal-700-border-color{border-color: var(--wp--preset--color--teal-700) !important;}.has-teal-800-border-color{border-color: var(--wp--preset--color--teal-800) !important;}.has-teal-900-border-color{border-color: var(--wp--preset--color--teal-900) !important;}.has-teal-950-border-color{border-color: var(--wp--preset--color--teal-950) !important;}.has-cyan-50-border-color{border-color: var(--wp--preset--color--cyan-50) !important;}.has-cyan-100-border-color{border-color: var(--wp--preset--color--cyan-100) !important;}.has-cyan-200-border-color{border-color: var(--wp--preset--color--cyan-200) !important;}.has-cyan-300-border-color{border-color: var(--wp--preset--color--cyan-300) !important;}.has-cyan-400-border-color{border-color: var(--wp--preset--color--cyan-400) !important;}.has-cyan-500-border-color{border-color: var(--wp--preset--color--cyan-500) !important;}.has-cyan-600-border-color{border-color: var(--wp--preset--color--cyan-600) !important;}.has-cyan-700-border-color{border-color: var(--wp--preset--color--cyan-700) !important;}.has-cyan-800-border-color{border-color: var(--wp--preset--color--cyan-800) !important;}.has-cyan-900-border-color{border-color: var(--wp--preset--color--cyan-900) !important;}.has-cyan-950-border-color{border-color: var(--wp--preset--color--cyan-950) !important;}.has-sky-50-border-color{border-color: var(--wp--preset--color--sky-50) !important;}.has-sky-100-border-color{border-color: var(--wp--preset--color--sky-100) !important;}.has-sky-200-border-color{border-color: var(--wp--preset--color--sky-200) !important;}.has-sky-300-border-color{border-color: var(--wp--preset--color--sky-300) !important;}.has-sky-400-border-color{border-color: var(--wp--preset--color--sky-400) !important;}.has-sky-500-border-color{border-color: var(--wp--preset--color--sky-500) !important;}.has-sky-600-border-color{border-color: var(--wp--preset--color--sky-600) !important;}.has-sky-700-border-color{border-color: var(--wp--preset--color--sky-700) !important;}.has-sky-800-border-color{border-color: var(--wp--preset--color--sky-800) !important;}.has-sky-900-border-color{border-color: var(--wp--preset--color--sky-900) !important;}.has-sky-950-border-color{border-color: var(--wp--preset--color--sky-950) !important;}.has-blue-50-border-color{border-color: var(--wp--preset--color--blue-50) !important;}.has-blue-100-border-color{border-color: var(--wp--preset--color--blue-100) !important;}.has-blue-200-border-color{border-color: var(--wp--preset--color--blue-200) !important;}.has-blue-300-border-color{border-color: var(--wp--preset--color--blue-300) !important;}.has-blue-400-border-color{bo
87rder-color: var(--wp--preset--color--blue-400) !important;}.has-blue-500-border-color{border-color: var(--wp--preset--color--blue-500) !important;}.has-blue-600-border-color{border-color: var(--wp--preset--color--blue-600) !important;}.has-blue-700-border-color{border-color: var(--wp--preset--color--blue-700) !important;}.has-blue-800-border-color{border-color: var(--wp--preset--color--blue-800) !important;}.has-blue-900-border-color{border-color: var(--wp--preset--color--blue-900) !important;}.has-blue-950-border-color{border-color: var(--wp--preset--color--blue-950) !important;}.has-indigo-50-border-color{border-color: var(--wp--preset--color--indigo-50) !important;}.has-indigo-100-border-color{border-color: var(--wp--preset--color--indigo-100) !important;}.has-indigo-200-border-color{border-color: var(--wp--preset--color--indigo-200) !important;}.has-indigo-300-border-color{border-color: var(--wp--preset--color--indigo-300) !important;}.has-indigo-400-border-color{border-color: var(--wp--preset--color--indigo-400) !important;}.has-indigo-500-border-color{border-color: var(--wp--preset--color--indigo-500) !important;}.has-indigo-600-border-color{border-color: var(--wp--preset--color--indigo-600) !important;}.has-indigo-700-border-color{border-color: var(--wp--preset--color--indigo-700) !important;}.has-indigo-800-border-color{border-color: var(--wp--preset--color--indigo-800) !important;}.has-indigo-900-border-color{border-color: var(--wp--preset--color--indigo-900) !important;}.has-indigo-950-border-color{border-color: var(--wp--preset--color--indigo-950) !important;}.has-violet-50-border-color{border-color: var(--wp--preset--color--violet-50) !important;}.has-violet-100-border-color{border-color: var(--wp--preset--color--violet-100) !important;}.has-violet-200-border-color{border-color: var(--wp--preset--color--violet-200) !important;}.has-violet-300-border-color{border-color: var(--wp--preset--color--violet-300) !important;}.has-violet-400-border-color{border-color: var(--wp--preset--color--violet-400) !important;}.has-violet-500-border-color{border-color: var(--wp--preset--color--violet-500) !important;}.has-violet-600-border-color{border-color: var(--wp--preset--color--violet-600) !important;}.has-violet-700-border-color{border-color: var(--wp--preset--color--violet-700) !important;}.has-violet-800-border-color{border-color: var(--wp--preset--color--violet-800) !important;}.has-violet-900-border-color{border-color: var(--wp--preset--color--violet-900) !important;}.has-violet-950-border-color{border-color: var(--wp--preset--color--violet-950) !important;}.has-purple-50-border-color{border-color: var(--wp--preset--color--purple-50) !important;}.has-purple-100-border-color{border-color: var(--wp--preset--color--purple-100) !important;}.has-purple-200-border-color{border-color: var(--wp--preset--color--purple-200) !important;}.has-purple-300-border-color{border-color: var(--wp--preset--color--purple-300) !important;}.has-purple-400-border-color{border-color: var(--wp--preset--color--purple-400) !important;}.has-purple-500-border-color{border-color: var(--wp--preset--color--purple-500) !important;}.has-purple-600-border-color{border-color: var(--wp--preset--color--purple-600) !important;}.has-purple-700-border-color{border-color: var(--wp--preset--color--purple-700) !important;}.has-purple-800-border-color{border-color: var(--wp--preset--color--purple-800) !important;}.has-purple-900-border-color{border-color: var(--wp--preset--color--purple-900) !important;}.has-purple-950-border-color{border-color: var(--wp--preset--color--purple-950) !important;}.has-fuchsia-50-border-color{border-color: var(--wp--preset--color--fuchsia-50) !important;}.has-fuchsia-100-border-color{border-color: var(--wp--preset--color--fuchsia-100) !important;}.has-fuchsia-200-border-color{border-color: var(--wp--preset--color--fuchsia-200) !important;}.has-fuchsia-300-border-color{border-color: var(--wp--preset--color--fuchsia-300) !important;}.has-fuchsia-400-border-color{border-color: var(--wp--preset--color--fuchsia-400) !important;}.has-fuchsia-500-border-color{border-color: var(--wp--preset--color--fuchsia-500) !important;}.has-fuchsia-600-border-color{border-color: var(--wp--preset--color--fuchsia-600) !important;}.has-fuchsia-700-border-color{border-color: var(--wp--preset--color--fuchsia-700) !important;}.has-fuchsia-800-border-color{border-color: var(--wp--preset--color--fuchsia-800) !important;}.has-fuchsia-900-border-color{border-color: var(--wp--preset--color--fuchsia-900) !important;}.has-fuchsia-950-border-color{border-color: var(--wp--preset--color--fuchsia-950) !important;}.has-pink-50-border-color{border-color: var(--wp--preset--color--pink-50) !important;}.has-pink-100-border-color{border-color: var(--wp--preset--color--pink-100) !important;}.has-pink-200-border-color{border-color: var(--wp--preset--color--pink-200) !important;}.has-pink-300-border-color{border-color: var(--wp--preset--color--pink-300) !important;}.has-pink-400-border-color{border-color: var(--wp--preset--color--pink-400) !important;}.has-pink-500-border-color{border-color: var(--wp--preset--color--pink-500) !important;}.has-pink-600-border-color{border-color: var(--wp--preset--color--pink-600) !important;}.has-pink-700-border-color{border-color: var(--wp--preset--color--pink-700) !important;}.has-pink-800-border-color{border-color: var(--wp--preset--color--pink-800) !important;}.has-pink-900-border-color{border-color: var(--wp--preset--color--pink-900) !important;}.has-pink-950-border-color{border-color: var(--wp--preset--color--pink-950) !important;}.has-rose-50-border-color{border-color: var(--wp--preset--color--rose-50) !important;}.has-rose-100-border-color{border-color: var(--wp--preset--color--rose-100) !important;}.has-rose-200-border-color{border-color: var(--wp--preset--color--rose-200) !important;}.has-rose-300-border-color{border-color: var(--wp--preset--color--rose-300) !important;}.has-rose-400-border-color{border-color: var(--wp--preset--color--rose-400) !important;}.has-rose-500-border-color{border-color: var(--wp--preset--color--rose-500) !important;}.has-rose-600-border-color{border-color: var(--wp--preset--color--rose-600) !important;}.has-rose-700-border-color{border-color: var(--wp--preset--color--rose-700) !important;}.has-rose-800-border-color{border-color: var(--wp--preset--color--rose-800) !important;}.has-rose-900-border-color{border-color: var(--wp--preset--color--rose-900) !important;}.has-rose-950-border-color{border-color: var(--wp--preset--color--rose-950) !important;}.has-lightgrey-border-color{border-color: var(--wp--preset--color--lightgrey) !important;}.has-heading-border-color{border-color: var(--wp--preset--color--heading) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
87.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-xs-font-size{font-size: var(--wp--preset--font-size--xs) !important;}.has-sm-font-size{font-size: var(--wp--preset--font-size--sm) !important;}.has-base-font-size{font-size: var(--wp--preset--font-size--base) !important;}.has-lg-font-size{font-size: var(--wp--preset--font-size--lg) !important;}.has-xl-font-size{font-size: var(--wp--preset--font-size--xl) !important;}.has-2-xl-font-size{font-size: var(--wp--preset--font-size--2-xl) !important;}.has-3-xl-font-size{font-size: var(--wp--preset--font-size--3-xl) !important;}.has-4-xl-font-size{font-size: var(--wp--preset--font-size--4-xl) !important;}.has-5-xl-font-size{font-size: var(--wp--preset--font-size--5-xl) !important;}.has-6-xl-font-size{font-size: var(--wp--preset--font-size--6-xl) !important;}.has-7-xl-font-size{font-size: var(--wp--preset--font-size--7-xl) !important;}.has-8-xl-font-size{font-size: var(--wp--preset--font-size--8-xl) !important;}.has-9-xl-font-size{font-size: var(--wp--preset--font-size--9-xl) !important;}.has-10-px-font-size{font-size: var(--wp--preset--font-size--10-px) !important;}.has-18-px-font-size{font-size: var(--wp--preset--font-size--18-px) !important;}.has-proxima-nova-font-family{font-family: var(--wp--preset--font-family--proxima-nova) !important;} 88:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} 89:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} 90:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} 91</style> 92<link rel='stylesheet' id='cmplz-general-css' href='https://www.shootinguk.co.uk/app/plugins/complianz-gdpr/assets/css/cookieblocker.min.css?ver=1739374094' media='all' /> 93<link rel='stylesheet' id='dashicons-css' href='https://gundog-journal.com/wp-includes/css/dashicons.min.css?ver=6.7.2' media='all' /> 94<link rel='stylesheet' id='search-filter-plugin-styles-css' href='https://www.shootinguk.co.uk/app/cache/background-css/2/www.shootinguk.co.uk/app/plugins/search-filter-pro/public/assets/css/search-filter.min.css?ver=2.5.19&wpr_t=1790913995' media='all' /> 95<link rel='stylesheet' id='wppopups-base-css' href='https://www.shootinguk.co.uk/app/plugins/wp-popups-lite/src/assets/css/wppopups-base.css?ver=2.2.0.2' media='all' /> 96<link rel='stylesheet' id='flowbite-css-css' href='https://www.shootinguk.co.uk/app/themes/roots-sage/resources/styles/flowbite/flowbite.min.css' media='all' /> 97<link rel='stylesheet' id='swiper-css-css' href='https://www.shootinguk.co.uk/app/themes/roots-sage/resources/styles/swiper/swiper.min.css' media='all' /> 98<link rel='stylesheet' id='app/0-css' href='https://www.shootinguk.co.uk/app/themes/roots-sage/public/css/app.e0d098.css' media='all' /> 99<link rel='stylesheet' id='gundog-fonts-css' href='https://www.shootinguk.co.uk/app/themes/roots-sage/resources/styles/gundog-fonts.css?ver=1790078160' media='all' /> 100<style id="tws-initials-avatar-css" data-tws-version="1.33.0">.tws-initials-avatar{display:inline-grid;place-items:center;border-radius:50%;
100width:var(--tws-avatar, var(--tws-avatar-asked, 96px));height:var(--tws-avatar, var(--tws-avatar-asked, 96px));font-size:calc(var(--tws-avatar, var(--tws-avatar-asked, 96px)) * 0.42);background:#CE101E;background:rgb(var(--color-primary, 206 16 30));color:#fff;font-weight:800;line-height:1;letter-spacing:.02em;overflow:hidden;font-family:inherit;vertical-align:middle;flex-shrink:0}@supports (color: lch(from red l c h)){.tws-initials-avatar{color:lch(from rgb(var(--color-primary, 206 16 30)) calc((49 - l) * infinity) 0 0)}}#wpadminbar .tws-initials-avatar{display:inline-grid;place-items:center;box-sizing:border-box;width:20px;height:20px;font-size:9px;line-height:1;letter-spacing:0;border:1px solid #2c353b;border-radius:50%;overflow:hidden;vertical-align:middle;margin:-4px 0 0 6px;float:none}#wpadminbar #wp-admin-bar-user-info .tws-initials-avatar{position:absolute;left:-72px;top:4px;width:64px;height:64px;font-size:27px;border:0;margin:0}</style>
100<script src="https://gundog-journal.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js" data-rocket-defer defer></script>
vendor: 1 bytes, line 100
100
101<script id="search-filter-plugin-build-js-extra"> 102var SF_LDATA = {"ajax_url":"https:\/\/gundog-journal.com\/wp-admin\/admin-ajax.php","home_url":"https:\/\/gundog-journal.com\/","extensions":[]}; 103</script>
vendor: 1 bytes, line 103
103
104<script src="https://www.shootinguk.co.uk/app/plugins/search-filter-pro/public/assets/js/search-filter-build.min.js?ver=2.5.19" id="search-filter-plugin-build-js" data-rocket-defer defer></script>
vendor: 1 bytes, line 104
104
105<script src="https://www.shootinguk.co.uk/app/plugins/search-filter-pro/public/assets/js/chosen.jquery.min.js?ver=2.5.19" id="search-filter-plugin-chosen-js" data-rocket-defer defer></script>
105 106 <!-- Meta Pixel Code --> 107
107<script type="text/plain" data-service="facebook" data-category="marketing">
vendor: 446 bytes, lines 107-117
107 108 !function(f,b,e,v,n,t,s) 109 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 110 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 111 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 112 n.queue=[];t=b.createElement(e);t.async=!0; 113 t.src=v;s=b.getElementsByTagName(e)[0]; 114 s.parentNode.insertBefore(t,s)}(window, document,'script', 115 'https://connect.facebook.net/en_US/fbevents.js'); 116 117 fbq('init', '
1171055197427285042
vendor: 40 bytes, lines 117-119
117'); 118 fbq('track', 'PageView'); 119
119</script>
119 120 121 <noscript> 122 <img height="1" width="1" style="display:none" 123 src="https://www.facebook.com/tr?id=1055197427285042&ev=PageView&noscript=1" 124 alt="" /> 125 </noscript> 126 <!-- End Meta Pixel Code --> 127 128<!-- This site is using AdRotate v5.19.2 to display their advertisements - https://ajdg.solutions/ --> 129<!-- AdRotate CSS --> 130<style type="text/css" media="screen"> 131 .g { margin:0px; padding:0px; overflow:hidden; line-height:1; zoom:1; } 132 .g img { height:auto; } 133 .g-col { position:relative; float:left; } 134 .g-col:first-child { margin-left: 0; } 135 .g-col:last-child { margin-right: 0; } 136 @media only screen and (max-width: 480px) { 137 .g-col, .g-dyn, .g-single { width:100%; margin-left:0; margin-right:0; } 138 } 139</style> 140<!-- /AdRotate CSS --> 141 142 <style>.cmplz-hidden { 143 display: none !important; 144 }</style> <link rel="apple-touch-icon" href="/app/uploads/sites/2/2025/01/GJ-Favicons2.png" sizes="57x57"> 145 <link rel="icon" type="image/png" href="/app/uploads/sites/2/2025/01/GJ-Favicons2.png"> 146 <meta name="msapplication-TileColor" content="#fff"> 147 <meta name="msapplication-TileImage" content="/app/uploads/sites/2/2025/01/GJ-Favicons2.png"> 148 <meta name="theme-color" content="#fff"> 149 <link rel="shortcut icon" type="image/png" href="/app/uploads/sites/2/2025/01/GJ-Favicons2.png"> 150 <link rel="shortcut icon" type="image/x-icon" href="/app/uploads/sites/2/2025/01/GJ-Favicons2.png"> 151<style id="tws-ad-css"> 152.tws-nlad{display:block;position:relative;margin:32px 0 36px;background:#fff;border:1px solid #c4c4c4;transition:transform .18s ease,box-shadow .18s ease} 153.tws-nlad-inner{display:flex;flex-direction:column} 154.tws-nlad-media{display:block;position:relative;flex:0 0 auto;margin:0;line-height:0;background:#f2f2f2;overflow:hidden;aspect-ratio:1040/347} 155.tws-nlad-media picture,.tws-nlad-media img{position:absolute;inset:0;display:block !important;width:100% !important;height:100% !important;object-fit:cover;object-position:center} 156.tws-nlad-body{display:flex;flex-direction:column;justify-content:center;padding:20px 20px 22px;min-width:0} 157.tws-nlad .tws-nlad-title{margin:0 0 10px !important;padding:0 !important;border:0;font-size:22px !important;line-height:1.3 !important;font-weight:700;color:#1f2937} 158.tws-nlad .tws-nlad-copy{margin:0 !important;padding:0 !important;border:0;font-size:16px !important;line-height:25.6px !important;font-weight:300;color:#4b5563} 159.tws-nlad-actions{margin-top:18px} 160.tws-nlad-btn{position:static;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:14px 30px;background:#231F20;color:#fff !important;font-size:14px;line-height:1.15;font-weight:700;letter-spacing:.09em;text-transform:uppercase;text-decoration:none !important;border-radius:0;transition:background .15s} 161/* the whole card is the click target: the button's ::after is stretched over it, so the button 162 stays the one real link, which is better for readers and for search than a block-level anchor */ 163.tws-nlad-btn::after{content:"";position:absolute;inset:0;z-index:1} 164.tws-nlad:hover,.tws-nlad:focus-within{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.14)} 165.tws-nlad:hover .tws-nlad-btn,.tws-nlad:focus-within .tws-nlad-btn{background:#000000} 166@media (prefers-reduced-motion:reduce){.tws-nlad{transition:none}.tws-nlad:hover,.tws-nlad:focus-within{transform:none}} 167/* Side by side only from 1280 up. Between 1024 and 1279 the 70/30 split is in force but the main 168 column is at its narrowest (650px), so a 40% picture column is 259px against copy that wraps to 169 ~346px and the slot turns portrait. Below 1280 the block keeps the newsletter's stacked shape, 170 which also keeps the desktop crop predictable at roughly 1.1:1 to 1.4:1. */ 171/* WHY THE PICTURE COLUMN IS STILL A PERCENTAGE, AND THE CROP THAT COSTS. Measured 15 September, 172 after two attempts at removing the crop were tried and rolled back. The picture takes 40% of 173 the card and stretches to whatever height the copy needs, so the box ratio is whatever falls 174 out of that. Against the 1200x900 the desk supplies: 175 window 1280, card 792px, box 316x289 (1.09:1) -> 18% off the SIDES, 25% with long copy 176 window 1366, card 852px, box 340x289 (1.18:1) -> 12% off the sides 177 window 1440, card 904px, box 361x264 (1.37:1) -> 3% off top and bottom 178 window 1600, card 1016px, box 406x264 (1.54:1) -> 13% off top and bottom
179 window 1920, card 1246px, box 498x250 (1.99:1) -> 33% off top and bottom 180 This is a DELIBERATE trade, made by Lee: the alternatives each cost more than the crop does. 181 A fixed pixel picture column with a 4:3 floor removes the crop entirely but only from a 1440 182 window up, which loses the side-by-side layout for 1280 and 1366 readers (tried as v0.4.0, 183 rolled back). Asking for a square instead removes the crop at every width (tried as v0.4.1, 184 measured as uncropped in all eighteen cases, rolled back) but changes the asset the desk has 185 already booked and delivered. Widening the percentage does not work at all: a wider picture 186 leaves a narrower text column, the copy wraps to more lines, the card grows taller and the box 187 goes narrower again - measured at 400, 420, 440 and 460px, worse every time. 188 So the crop stays, and the mitigation lives in the image spec instead: key content inside the 189 central 900x600 of the 1200x900, because up to 25% can come off the sides and up to 33% off the 190 top and bottom depending on the reader's window and how long the copy runs. Do not "fix" this 191 in CSS without reading _DOCS/newsletter-ad-block-markup-and-css.md first. */ 192/* The :not(--stacked) matters. With no 4:3 supplied there is only the 3:1 banner, and putting 193 that in a 40% column crops it to about 1.1:1, which slices the advertiser's wordmark off both 194 ends. Simon's spec is explicit: no 4:3 means the banner runs full width above the copy at 195 EVERY size. So the row layout is switched off for that case rather than fed a picture it 196 cannot use. */ 197@media (min-width:1280px){ 198 .tws-nlad--article:not(.tws-nlad--stacked) .tws-nlad-inner{flex-direction:row;align-items:stretch} 199 .tws-nlad--article:not(.tws-nlad--stacked) .tws-nlad-media{flex:0 0 40%;align-self:stretch;aspect-ratio:auto;min-height:250px} 200 .tws-nlad--article:not(.tws-nlad--stacked) .tws-nlad-body{flex:1 1 auto;padding:26px 30px 28px} 201 .tws-nlad--article:not(.tws-nlad--stacked) .tws-nlad-title{font-size:24px !important} 202 203 /* FIXED RATIO, the default, and the whole of the difference between the two settings. 204 The picture column becomes a fixed 400px instead of 40% of the card, and the box is given a 205 floor of --tws-nlad-minh, which the block sets per advert to 400 divided by the picture's own 206 ratio - 300px for a 1200x900. The floor is what stops the top and bottom being cropped: at a 207 wide window, where the copy is short, the box sits exactly on 400x300 and the whole picture is 208 shown, and the card takes its height from the picture instead of the other way round. The copy 209 is already vertically centred, so the extra height appears as space above the title and below 210 the button. 211 It has to be a floor and not an exact aspect-ratio. If the box were pinned exactly, then at 212 1280 and 1366 - where the copy needs more height than a 400px 4:3 provides - the card would be 213 taller than the picture and leave a white gap beneath it. A floor lets the box grow taller 214 there, so the crop comes off the sides instead, gradually, and there is never a gap. 215 Measured over six window widths and three copy lengths, against the supplied 1200x900: 216 fixed ratio - no crop at all from 1440 up; 6% off the sides at 1366, 13% at 1280 217 responsive - 33% off top and bottom at 1920, 13% at 1600, 3% at 1440, 218 then 12% off the sides at 1366 and 18% at 1280 219 Responsive is kept as a setting because it makes a shorter card, which suits a picture with 220 nothing important near the top or bottom edge. */ 221 .tws-nlad--article.tws-nlad--fixed:not(.tws-nlad--stacked) .tws-nlad-media{flex:0 0 auto;width:400px;min-height:var(--tws-nlad-minh,300px)} 222} 223/* sidebar: always stacked, and always the 3:1 banner, because the column is 300px wide */ 224.tws-nlad--sidebar{margin:0 0 30px} 225.tws-nlad--sidebar .tws-nlad-body{padding:16px 16px 18px} 226.tws-nlad--sidebar .tws-nlad-title{font-size:19px !important} 227.tws-nlad--sidebar .tws-nlad-copy{font-size:14px !important;line-height:21px !important} 228.tws-nlad--sidebar .tws-nlad-btn{display:flex;width:100%;min-height:46px;padding:13px 16px} 229/* The label. Simon set it centrally in the Engine and it is EMPTY as at 14 September, so no 230 element is printed at all - which is also what Lee asked for. If words arrive later they render 231 here without a code change: a small tab on the brand colour above the card, the same idiom as 232 the site's own black "Related Articles" tab. */ 233.tws-nlad--labelled{margin-top:54px} 234.tws-nlad .tws-nlad-label{position:absolute;top:-21px;left:0;z-index:2;margin:0 !important;padding:3px 9px !important;background:#231F20;color:#fff;border:0;font-size:10px !important;line-height:1.5 !important;font-weight:600;letter-spacing:.12em;text-transform:uppercase} 235/* demo only, and deliberately outside the card so the design is never judged with it on */ 236.tws-nlad-demo{outline:2px dashed #C58B00;outline-offset:3px} 237.tws-nlad-note{margin:0 0 30px !important;padding:5px 8px !important;background:#FFF8DC;border:1px dashed #D9B400;font-size:11px !important;line-height:1.5 !important;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#8A6D00} 238</style><style id="tws-article-flag-css">.tws-flag{position:absolute;top:0;left:0;z-index:2;display:inline-flex;align-items:center;height:24px;padding:0 12px;background:#0A0A0A;color:#fff;font-family:inherit;font-size:12px;font-weight:700;line-height:1;letter-spacing:.11em;text-transform:uppercase;white-space:nowrap;pointer-events:none;}.tws-flag--breaking{background:#CE101E}.tws-flag--hero{height:34px;padding:0 17px;font-size:14px;letter-spacing:.12em}@media (max-width:480px){.tws-flag{height:22px;padding:0 10px;font-size:11px}.tws-flag--hero{height:28px;padding:0 14px;font-size:12px}}</style> 239<style id="twsnl-sub-css"> 240.twsnl-sub{position:relative;display:inline-block} 241.twsnl-sub--mobile{display:block;width:100%;max-width:340px;margin:0 auto} 242.twsnl-sub-btn{display:inline-flex;align-items:center;gap:8px;border:0;cursor:pointer;line-height:1.2;font-family:inherit;white-space:nowrap} 243.twsnl-sub--mobile .twsnl-sub-btn{width:100%;justify-content:center} 244.twsnl-sub-btn:focus-visible{outline:2px solid #B28751;outline-offset:3px} 245.twsnl-sub-chev{width:12px;height:12px;flex:0 0 12px;transition:transform .2s ease} 246.twsnl-sub-btn[aria-expanded="true"] .twsnl-sub-chev{transform:rotate(180deg)} 247.twsnl-sub-dd{position:absolute;top:calc(100% + 12px);right:0;z-index:10000;min-width:396px;background:#fff;color:#231f20;text-align:left;border:1px solid #e3e1df;border-radius:3px;box-shadow:0 12px 34px rgba(0,0,0,.22),0 2px 6px rgba(0,0,0,.1);font-family:inherit;animation:twsnl-sub-in .18s ease-out both} 248.twsnl-sub-dd[hidden]{display:none} 249@keyframes twsnl-sub-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}} 250.twsnl-sub-caret{position:absolute;top:-7px;right:26px;width:12px;height:12px;background:#fff;border-left:1px solid #e3e1df;border-top:1px solid #e3e1df;transform:rotate(45deg)} 251.twsnl-sub--mobile .twsnl-sub-dd{left:0;right:0;min-width:0} 252.twsnl-sub--mobile .twsnl-sub-caret{right:auto;left:50%;margin-left:-6px} 253.twsnl-sub-row{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;text-decoration:none;color:#231f20;border-bottom:1px solid #e8e6e4;transition:background-color .15s ease} 254.twsnl-sub-row:last-child{border-bottom:0} 255.twsnl-sub-row:hover,.twsnl-sub-row:focus-visible{background:#f6f4f2;color:#231f20;text-decoration:none} 256.twsnl-sub-row:focus-visible{outline:2px solid #B28751;outline-offset:-2px} 257.twsnl-sub-row--mag{padding:18px;gap:16px} 258.twsnl-sub-text{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0} 259.twsnl-sub-title{font-size:15px;font-weight:600;letter-spacing:.2px;line-height:1.3} 260.twsnl-sub-row--mag .twsnl-sub-title{font-size:17px} 261.twsnl-sub-desc{font-size:12.5px;font-weight:400;line-height:1.45;color:#6b6764} 262.twsnl-sub-ico{width:20px;height:20px;flex:0 0 20px;margin-top:2px;color:#B28751} 263.twsnl-sub-arrow{width:16px;height:16px;flex:0 0 16px;margin-top:3px;color:#B28751;opacity:0;transform:translateX(-4px);transition:opacity .15s ease,transform .15s ease} 264.twsnl-sub-row:hover .twsnl-sub-arrow,.twsnl-sub-row:focus-visible .twsnl-sub-arrow{opacity:1;transform:none} 265.twsnl-sub-cover{flex:0 0 74px;width:74px;display:block;box-shadow:0 3px 10px rgba(0,0,0,.28)} 266.twsnl-sub-cover img,.twsnl-sub-cover picture{display:block;width:100%!important;height:auto!important} 267.twsnl-sub-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#B28751;margin-bottom:3px} 268.twsnl-sub-link{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:12.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#B28751} 269.twsnl-sub-link .twsnl-sub-arrow{opacity:1;transform:none;margin-top:0} 270@media(prefers-reduced-motion:reduce){.twsnl-sub-dd{animation:none}.twsnl-sub-chev,.twsnl-sub-arrow{transition:none}} 271@media(max-width:1023px){ 272/* The subscribe row rolls away once the reader starts scrolling, leaving the 273 logo and the menu button. .nav-header-main carries min-height:80px from the 274 mega-menu stylesheet, which beats max-height, so that has to go too. */ 275#header .nav-header-main.justify-evenly{overflow:hidden;max-height:120px;opacity:1;transition:max-height .3s ease,opacity .22s ease,padding-bottom .3s ease} 276#header.twsnl-hdr-compact .nav-header-main.justify-evenly{max-height:0;min-height:0!important;opacity:0;padding-bottom:0!important}
277/* That overflow would clip the panel, so it is released while one is open. */ 278#header.twsnl-sub-open .nav-header-main.justify-evenly{overflow:visible} 279@media(prefers-reduced-motion:reduce){#header .nav-header-main.justify-evenly{transition:none}} 280} 281</style> 282 <style id="tws-search-and-display-css"> 283/* TWS Search & Display. Scoped tws-is- classes only: per CLAUDE.md 5.1 no new Tailwind 284 class would have any CSS behind it, because nobody in this workflow runs the build. */ 285.tws-is-panel, .tws-is-panel * { border-radius: 0 !important; box-sizing: border-box; } 286.tws-is-panel { font-family: inherit; } 287 288/* The header dropdowns are the theme's own; only the padding is neutralised so the white 289 panel sits flush against the black navigation bar with no gap above it. */ 290.desktop-search-dropdown > .container, 291.mobile-search-dropdown .header-search { padding-top: 0 !important; padding-bottom: 0 !important; } 292/* app.css also puts `border-top: 1px solid #e5e5e5` on this element. The dropdown spans the 293 full viewport (absolute, left-0 right-0) and the plugin makes it transparent, so that 294 border is the only part of it visible outside the white panel: a pale full-width line 295 sitting between the black navigation bar and the dimmed page. It was the theme's divider 296 for a white full-width dropdown; with a centred panel and an overlay it is just a seam. */ 297.desktop-search-dropdown { background: transparent !important; box-shadow: none !important; border-top: 0 !important; } 298 299/* THE FLASH ON EVERY PAGE LOAD. 300 The dropdowns are ordinary markup carrying x-show="expanded", and x-show does nothing at 301 all until Alpine boots - so between first paint and Alpine initialising, the browser draws 302 the panel open. The theme has always done this; it only became noticeable once the panel 303 was a tall white box instead of a small input. 304 305 So the dropdowns are hidden by CSS until Alpine says it has started, and the ONLY job of 306 the script below is to add `tws-sd-alpine-ready` to <html> when it hears Alpine's 307 `alpine:initialized` event. The hiding itself is pure CSS, present in the very first frame, 308 which is the only thing that can beat a flash - a class added by script cannot hide 309 anything in time, because scripts run after the page has already painted. Adding a class to 310 REVEAL is fine: by then Alpine owns the element and has already hidden it itself. 311 312 Do NOT be tempted by `[x-show]:not([style])` as a stand-in for "Alpine has not touched 313 this". It looks right and it is wrong, and it cost a live regression on 18 August: Alpine 314 v3's x-show does `0 === el.style.length && el.removeAttribute('style')` when it SHOWS an 315 element, so an element that has just been opened has no style attribute either. The 316 selector matched again, and the panel could never be opened at all. 317 318 That timeout is the escape hatch. If Alpine never boots, the class goes on anyway after 319 four seconds and the panel is revealed, because a visible search box that still works on 320 Enter beats no search box at all. */ 321html:not(.tws-sd-alpine-ready) .desktop-search-dropdown[x-show], 322html:not(.tws-sd-alpine-ready) .mobile-search-dropdown[x-show] { display: none !important; } 323 324/* app.css caps the wrapper the panel sits in: 325 .desktop-search-dropdown .header-search { margin: 0 auto; max-width: 600px } 326 That was sized for the old Search & Filter box, and it silently overrode the panel width 327 setting - no matter what percentage was chosen the panel could never exceed 600px, which 328 is why raising the setting appeared to do nothing at all. The cap has no purpose once the 329 form has been replaced, so it is lifted here. !important because this rule and the 330 theme's have identical specificity and the stylesheet order is not ours to rely on. */ 331.desktop-search-dropdown .header-search, 332.mobile-search-dropdown .header-search { 333 max-width: none !important; 334 width: 100% !important; 335 padding-left: 0 !important; 336 padding-right: 0 !important; 337} 338 339/* The configured width applies on a wide desktop. As the window narrows, a fixed 340 percentage leaves the panel looking mean and squeezes the result rows, so it takes a 341 progressively larger share and finally the full width. Each step still respects the 342 setting: a site configured narrower stays proportionally narrower throughout. */ 343.desktop-search-dropdown .tws-is-panel { 344 width: 50vw; 345 min-width: 460px; 346 max-width: 100%; 347 margin: 0 auto; 348 background: #fff; 349 box-shadow: 0 24px 48px rgba(0,0,0,.30); 350 padding: 24px 26px 26px; 351} 352@media (max-width: 1500px) { 353 .desktop-search-dropdown .tws-is-panel { width: 60vw; } 354} 355@media (max-width: 1250px) { 356 .desktop-search-dropdown .tws-is-panel { width: 73vw; } 357} 358.mobile-search-dropdown .tws-is-panel { 359 width: 100%; 360 background: #fff; 361 box-shadow: 0 18px 36px rgba(0,0,0,.30); 362 padding: 16px 15px 18px; 363} 364 365.tws-is-box { display: flex; align-items: center; gap: 12px; border: 2px solid #b38750; padding: 13px 16px; background: #fff; } 366.tws-is-box .tws-is-icon { flex: none;
366 width: 20px; height: 20px; color: #888; } 367.tws-is-input { border: 0; outline: 0; width: 100%; font-size: 17px; line-height: 1.3; color: #1a1a1a; background: transparent; font-family: inherit; padding: 0; margin: 0; height: auto; box-shadow: none; } 368.tws-is-input::placeholder { color: #a9a9a9; opacity: 1; } 369/* Chrome and Safari draw their own clear cross on type=search. Without this there are two. */ 370.tws-is-input::-webkit-search-cancel-button, .tws-is-input::-webkit-search-decoration { -webkit-appearance: none; appearance: none; display: none; } 371.tws-is-clear { border: 0; background: #efefef; color: #666; width: 24px; height: 24px; font-size: 14px; line-height: 1; cursor: pointer; flex: none; padding: 0; } 372.tws-is-clear[hidden] { display: none; } 373 374.tws-is-meta { display: flex; justify-content: space-between; align-items: baseline; margin: 16px 2px 8px; font-size: 11px; color: #777; text-transform: uppercase; letter-spacing: .8px; } 375.tws-is-meta .tws-is-kbd { text-transform: none; letter-spacing: 0; } 376.tws-is-meta kbd { background: #f3f3f3; border: 1px solid #ddd; padding: 1px 5px; font-size: 10.5px; font-family: inherit; } 377 378.tws-is-results { list-style: none; margin: 0; padding: 0; } 379.tws-is-item { display: flex; gap: 16px; align-items: center; padding: 10px; cursor: pointer; } 380.tws-is-item + .tws-is-item { border-top: 1px solid #f0efec; } 381.tws-is-item:hover, .tws-is-item.is-active { background: rgba(0,0,0,.04); } 382.tws-is-item a { text-decoration: none; color: inherit; display: flex; gap: 16px; align-items: center; width: 100%; } 383.tws-is-thumb { flex: none; width: 110px; height: 72px; overflow: hidden; background: #e6e4e0; } 384/* Imagify rewraps images in <picture> and moves the class onto the wrapper (CLAUDE.md 5.5), 385 so the size is pinned on the container and any descendant image is forced to fill it. */ 386.tws-is-thumb picture, .tws-is-thumb img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; } 387.tws-is-text { min-width: 0; } 388.tws-is-cat { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #b38750; margin-bottom: 2px; } 389/* These are spans, and a span is inline: without display:block the byline ran straight on 390 from the end of the headline ("...British fly fairBy Hollis Butler"). */ 391.tws-is-title { display: block; font-size: 16.5px; font-weight: 600; line-height: 1.35; color: #1a1a1a; margin: 0; font-family: inherit; } 392/* Every highlight in the panel, not just the one in the headline. 393 Only the title was styled before, so the match inside the byline fell through to the 394 browser's default <mark> - bright yellow - and the two sat side by side in different 395 colours. Scoped to the panel, and a translucent tint of the site's own accent rather 396 than a second hard-coded colour, so it is right on all seven sites. */ 397.tws-is-panel mark { background: rgba(179, 135, 80, .16); color: inherit; padding: 0 1px; } 398.tws-is-byline { display: block; font-size: 12px; color: #767676; margin-top: 3px; } 399.tws-is-byline b { font-weight: 600; color: #444; } 400 401.tws-is-viewall { display: block; width: 100%; text-align: center; margin-top: 12px; padding: 12px; border: 0; background: #b38750; color: #fff; font-weight: 700; font-size: 13.5px; letter-spacing: .4px; cursor: pointer; font-family: inherit; text-decoration: none; } 402.tws-is-viewall:hover, .tws-is-viewall:focus { filter: brightness(.85); color: #fff; } 403 404.tws-is-empty h4 { font-size: 11px; letter-spacing: .8px; text-transform: uppercase; color: #777; font-weight: 600; margin: 14px 2px 10px; font-family: inherit; } 405.tws-is-chips { display: flex; flex-wrap: wrap; gap: 8px; } 406.tws-is-chip { border: 1px solid #ddd; background: #fafafa; padding: 7px 14px; font-size: 13px; color: #444; cursor: pointer; font-family: inherit; } 407.tws-is-chip:hover { border-color: #b38750; color: #b38750; } 408.tws-is-note { padding: 22px 8px; text-align: center; color: #777; font-size: 14px; } 409 410/* Dimming the page behind is the part Lee singled out. Below the header (z 9999) and below 411 the sticky advertisement in layouts/app.blade.php (z 99999), so neither is ever covered. */ 412.tws-is-dim { display: none; position: fixed; inset: 0; background: rgba(20,18,16,.45); z-index: 9998; pointer-events: none; } 413body.tws-is-open .tws-is-dim { display: block; } 414 415@media (prefers-reduced-motion: no-preference) { 416 body.tws-is-open .tws-is-panel { animation: tws-is-drop .22s ease-out; } 417 @keyframes tws-is-drop { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } 418} 419 420@media (max-width: 1023px) { 421 .desktop-search-dropdown .tws-is-panel { width: 100%; min-width: 0; padding: 16px 15px 18px; } 422 .tws-is-thumb { width: 84px; height: 58px; } 423 .tws-is-title { font-size: 14.5px; } 424 .tws-is-cat { font-size: 9.5px; } 425 .tws-is-byline { font-size: 11px; } 426 .tws-is-meta .tws-is-kbd { display: none; } 427 .tws-is-viewall { font-size: 12.5px; } 428} 429 430/* A panel dropped into page content by the theme's Search block, rather than the header. */ 431:not(.desktop-search-dropdown):not(.header-search) > .tws-is-panel { background: transparent; box-shadow: none; padding: 0; } 432</style>
433<script id="tws-search-and-display-boot"> 434/* Releases the anti-flash rule above. Runs in the head, before the theme bundle, so the 435 listener is in place well before Alpine dispatches its event. 436 437 Three ways in, because being stuck hidden is far worse than a brief flash: 438 1. alpine:initialized - the normal path, fires once Alpine has taken over the page; 439 2. Alpine already present - covers this script somehow running late; 440 3. a four second timeout - if Alpine never boots at all the search is still reachable. */ 441(function () { 442 var el = document.documentElement; 443 var released = false; 444 445 function release() { 446 if (released) { return; } 447 448 released = true; 449 el.classList.add('tws-sd-alpine-ready'); 450 } 451 452 document.addEventListener('alpine:initialized', release); 453 454 if (window.Alpine) { release(); } 455 456 setTimeout(release, 4000); 457})(); 458</script>
458 459 <style id="tws-search-and-display-pagination-css"> 460/* TWS Search & Display - pagination as buttons. 461 Colour comes from the theme's own --color-primary custom property, so each site gets its 462 own red without this file knowing anything about it. The hex on the line above each var() 463 is the fallback, read from Theme Settings, for anywhere the property is not set. */ 464 465/* Centre the pager. The archive block ships justify-start, so this is the rule that moves 466 the numbers from the left edge into the middle of the column. */ 467.posts-pagination { 468 justify-content: center !important; 469 align-items: center; 470 flex-wrap: wrap; 471 gap: 8px !important; 472} 473 474/* --------------------------------------------------------------- 475 Numbered pager: category, tag and the landing pages that use the 476 paginated-posts block. paginate_links() prints .page-numbers on 477 every item, .current on the page you are on, .dots on the ellipsis 478 and .prev / .next on the arrows. 479 --------------------------------------------------------------- */ 480.posts-pagination .page-numbers { 481 display: inline-flex; 482 align-items: center; 483 justify-content: center; 484 min-width: 44px; 485 height: 44px; 486 padding: 0 14px; 487 font-size: 16px !important; 488 font-weight: 600; 489 line-height: 1; 490 text-decoration: none; 491 color: #231F20 !important; 492 background: #fff; 493 border: 1px solid #d9d9d9; 494 transition: background .15s ease, color .15s ease, border-color .15s ease; 495} 496 497.posts-pagination a.page-numbers:hover { 498 border-color: #b38750; 499 border-color: rgb(var(--color-primary)); 500 color: #b38750 !important; 501 color: rgb(var(--color-primary)) !important; 502} 503 504.posts-pagination .page-numbers.current { 505 background: #b38750; 506 background: rgb(var(--color-primary)); 507 border-color: #b38750; 508 border-color: rgb(var(--color-primary)); 509 color: #fff !important; 510} 511 512.posts-pagination .page-numbers.dots { 513 background: transparent; 514 border-color: transparent; 515 min-width: 20px; 516 padding: 0 2px; 517 color: #767676 !important; 518} 519 520/* On a phone the full set can spill onto a second row and strand the forward arrow on its 521 own, so the buttons tighten up rather than wrap. */ 522@media (max-width: 480px) { 523 .posts-pagination { 524 gap: 6px !important; 525 } 526 527 .posts-pagination .page-numbers { 528 min-width: 38px; 529 height: 38px; 530 padding: 0 8px; 531 font-size: 15px !important; 532 } 533} 534 535/* --------------------------------------------------------------- 536 Search results pager. get_the_posts_navigation() prints a nav with 537 two stacked divs, which is why Older and Newer sit on top of each 538 other today. This puts them side by side as buttons. 539 --------------------------------------------------------------- */ 540.posts-pagination .navigation, 541.posts-pagination .posts-navigation { 542 width: 100%; 543} 544 545.posts-pagination .nav-links { 546 display: flex; 547 justify-content: center; 548 align-items: center; 549 gap: 10px; 550 flex-wrap: wrap; 551} 552 553.posts-pagination .nav-links a { 554 display: inline-flex; 555 align-items: center; 556 justify-content: center; 557 padding: 13px 22px; 558 font-size: 16px; 559 font-weight: 600; 560 letter-spacing: .34px; 561 line-height: 1; 562 text-decoration: none; 563 color: #fff !important; 564 background: #b38750; 565 background: rgb(var(--color-primary)); 566 transition: filter .15s ease; 567} 568 569.posts-pagination .nav-links a:hover { 570 filter: brightness(.85); 571} 572</style> 573 <style id="tws-search-and-display-ratio-css"> 574 575/* --------------------------------------------------------------- 576 Listing picture at 1.88:1, matching the article featured image. 577 578 The paginated-posts block prints 579 <ul class="flex flex-col gap-[40px] lg:gap-[10px]"> 580 <li class="gap-[10px] lg:gap-[15px] flex flex-wrap pb-[10px] border-b â¦"> 581 <div class="relative w-full lg:w-[285px] lg:h-[180px] overflow-hidden 582 aspect-[2/1] lg:aspect-[1.58/1]"> picture 583 <div class="flex flex-col ⦠lg:w-[calc(100%-285px-40px)]"> text 584 --------------------------------------------------------------- */ 585 586/* Desktop, 1024px up (Tailwind lg, where the picture stops being full width). 587 285x180 becomes 338x180; 338 / 180 = 1.878. */ 588@media (min-width: 1024px) { 589 590 ul.flex.flex-col.gap-\[40px\].lg\:gap-\[10px\] > li > div[class*="lg:w-[285px]"] { 591 width: 338px !important; 592 flex: 0 0 338px; 593 height: 180px !important; 594 aspect-ratio: 1.88 / 1 !important; 595 } 596 597 ul.flex.flex-col.gap-\[40px\].lg\:gap-\[10px\] > li > div[class*="lg:w-[calc(100%-285px-40px)]"] { 598 width: calc(100% - 378px) !important; 599 } 600} 601 602/* Below 1024px the picture is already full width, so only its shape changes: 2:1 to 1.88:1. */ 603@media (max-width: 1023px) { 604 605 ul.flex.flex-col.gap-\[40px\].lg\:gap-\[10px\] > li > div[class*="lg:w-[285px]"] { 606 aspect-ratio: 1.88 / 1 !important; 607 } 608} 609 610/* Imagify is set to serve WebP with <picture> tags, which lifts the class attribute off the 611 <img> and onto the <picture>
611. The inner img therefore loses object-cover / h-full / w-full 612 and falls back to its natural size, on those images that happen to have a WebP version. 613 Rules for both elements, at every width. CLAUDE.md 5.5. */ 614ul.flex.flex-col.gap-\[40px\].lg\:gap-\[10px\] > li > div[class*="lg:w-[285px]"] picture, 615ul.flex.flex-col.gap-\[40px\].lg\:gap-\[10px\] > li > div[class*="lg:w-[285px]"] img { 616 display: block; 617 width: 100% !important; 618 height: 100% !important; 619 object-fit: cover; 620} 621</style> 622 <style id="tws-comp-css"> 623.tws-comp-card,.tws-comp-card *,.tws-cp,.tws-cp *,.tws-comp-toast,.tws-comp-toast *,.tws-comp-bar,.tws-comp-bar *{box-sizing:border-box} 624.tws-comp-flag{position:absolute;left:0;top:14px;z-index:2;display:inline-block;background:#C8102E;color:#fff;font:700 11px/1 'Open Sans',Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;padding:6px 9px} 625.tws-flag.tws-flag--win{background:#C8102E;color:#fff} 626.tws-comp-pill{position:absolute;left:12px;bottom:12px;z-index:2;display:inline-flex;align-items:center;gap:6px;background:#fff;color:#231F20;font:700 11px/1 'Open Sans',Arial,sans-serif;padding:6px 9px;border-radius:999px} 627.tws-comp-pill i{width:7px;height:7px;border-radius:50%;background:#C8102E;display:inline-block} 628.tws-comp-pill--dark{position:static;background:#231F20;color:#fff} 629.tws-comp-pill--dark i{background:#ff4d57} 630.tws-comp-card{position:relative;display:flex;flex-direction:column;background:#f5f3ef;color:#231F20;transition:transform .18s ease,box-shadow .18s ease} 631.tws-comp-card:hover,.tws-comp-card:focus-within{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.14)} 632@media (prefers-reduced-motion:reduce){.tws-comp-card{transition:none}.tws-comp-card:hover{transform:none}} 633.tws-comp-pic{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#ddd} 634.tws-comp-pic img,.tws-comp-pic picture{position:absolute;inset:0;width:100% !important;height:100% !important;object-fit:cover;display:block;max-width:none} 635.tws-comp-body{display:flex;flex-direction:column;gap:8px;padding:16px 16px 18px;flex:1} 636.tws-comp-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px} 637#app#app .tws-comp-worth,.tws-comp-worth{font:700 12px/1.2 'Open Sans',Arial,sans-serif !important;letter-spacing:.06em;text-transform:uppercase;color:#C8102E} 638#app#app .tws-comp-title,.tws-comp-title{font-family:'Montserrat', Arial, sans-serif !important;font-weight:700 !important;font-size:18px;line-height:1.3;color:#231F20} 639#app#app .tws-comp-blurb,.tws-comp-blurb{font-size:15px;line-height:1.5;color:#4a4a4a} 640#app#app .tws-comp-free,.tws-comp-free{font:400 12px/1.3 'Open Sans',Arial,sans-serif !important;color:#666} 641#app#app a.tws-comp-btn,a.tws-comp-btn{position:static;display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:rgb(var(--color-primary,200,16,46));color:#1d1d1b !important;font:700 12px/1 'Open Sans',Arial,sans-serif !important;letter-spacing:.08em;text-transform:uppercase;padding:0 20px;text-decoration:none !important;white-space:nowrap} 642.tws-comp-card a.tws-comp-btn::after{content:"";position:absolute;inset:0;z-index:1} 643.tws-comp-card--card .tws-comp-btn{align-self:flex-start;margin-top:auto} 644.tws-comp-card--wide{flex-direction:row;margin:32px 0;border:1px solid #e3ded6} 645.tws-comp-card--wide .tws-comp-pic{flex:0 0 40%;aspect-ratio:auto;min-height:220px} 646.tws-comp-card--wide .tws-comp-body{justify-content:center;gap:10px;padding:22px 24px} 647#app#app .tws-comp-card--wide .tws-comp-title{font-size:24px;line-height:1.25} 648.tws-comp-card--side{background:#231F20;color:#fff;margin:0 0 30px;display:none;border:1px solid #e3ded6} 649@media (min-width:1024px){.tws-comp-card--side{display:flex}} 650.tws-comp-card--side .tws-comp-pic{aspect-ratio:16/10} 651#app#app .tws-comp-card--side .tws-comp-title{color:#fff;font-size:20px} 652#app#app .tws-comp-card--side .tws-comp-worth{color:#ff6b73} 653.tws-comp-card--side .tws-comp-row{flex-direction:column;align-items:stretch;gap:8px} 654#app#app .tws-comp-card--side .tws-comp-free{color:#bbb;text-align:center} 655@media (max-width:767px){.tws-comp-card--wide{flex-direction:column}.tws-comp-card--wide .tws-comp-pic{flex:none;aspect-ratio:16/9;min-height:0}#app#app .tws-comp-card--wide .tws-comp-title{font-size:20px}} 656.tws-comp-label{border-bottom:3px solid #000;margin-bottom:20px}
657.tws-comp-label span{display:inline-block;background:#000;color:#fff;font-weight:600;font-size:16px;line-height:1.5;padding:10px 20px} 658.tws-comp-grid{display:grid;gap:20px;grid-template-columns:repeat(4,minmax(0,1fr))} 659.tws-comp-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))} 660.tws-comp-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))} 661.tws-comp-band--one .tws-comp-grid{display:block} 662.tws-comp-band--one .tws-comp-card--wide{margin:0} 663.tws-comp-foot{display:flex;justify-content:space-between;gap:16px;margin-top:14px;font-size:13px;line-height:1.4} 664#app#app .tws-comp-foot a{color:#231F20;font-weight:700;text-decoration:underline} 665@media (max-width:1023px){.tws-comp-grid,.tws-comp-grid--2,.tws-comp-grid--3{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding-bottom:6px}.tws-comp-grid .tws-comp-card--card{flex:0 0 78%;scroll-snap-align:start}} 666.tws-comp-short{margin-top:20px} 667@media (min-width:1024px){.tws-comp-short{margin-top:40px}} 668.tws-comp-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;border-radius:9px;background:#C8102E;color:#fff;font:700 10px/1 'Open Sans',Arial,sans-serif;margin-left:6px;padding:0 4px;vertical-align:2px} 669.tws-comp-strip{margin-bottom:0} 670/* the standard page */ 671.tws-cp{color:#231F20} 672.tws-cp-hero{position:relative;margin:0;aspect-ratio:1.88/1;overflow:hidden;background:#fff;border:1px solid #e3ded6} 673.tws-cp-hero img,.tws-cp-hero picture{position:absolute;inset:0;width:100% !important;height:100% !important;object-fit:cover;display:block} 674.tws-cp-hero .tws-comp-flag{top:20px;font-size:13px;padding:8px 12px} 675.tws-cp-hero .tws-comp-pill{left:16px;bottom:16px;font-size:13px;padding:8px 12px} 676.tws-cp-hero .tws-comp-pill--dark{position:absolute} 677.tws-cp-hero--gal{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:6px;overflow:visible;background:transparent;border:0} 678.tws-cp-main{position:relative;margin:0;overflow:hidden;background:#fff;border:1px solid #e3ded6} 679.tws-cp-side{position:relative;min-height:0} 680.tws-cp-thumbs{position:absolute;inset:0;display:flex;flex-direction:column;gap:6px;overflow-y:auto;overscroll-behavior:contain;scroll-snap-type:y mandatory;scrollbar-width:none} 681.tws-cp-thumbs::-webkit-scrollbar{display:none} 682/* Side pictures (1.8.0): 4:3, three slots showing, the same size however many there are. The 683 picture block is 1.88:1, so one slot is (width / 1.88 - 12px) / 3 tall and 4/3 of that wide. 684 Width comes from the .tws-cp container. Fewer than three leaves a gap at the bottom. */ 685.tws-cp{container-type:inline-size} 686@media (min-width:768px){@supports (width:1cqw){ 687 .tws-cp-hero--gal{grid-template-columns:minmax(0,1fr) calc((100cqw / 1.88 - 12px) / 3 * 4 / 3)} 688}} 689button.tws-cp-thumb{position:relative;display:block;flex:0 0 calc((100% - 12px) / 3);overflow:hidden;border:1px solid #e3ded6;padding:0;margin:0;background:#fff;cursor:pointer;min-height:0;scroll-snap-align:start} 690button.tws-cp-thumb:hover img,button.tws-cp-thumb:focus-visible img{transform:scale(1.04)} 691button.tws-cp-thumb img{transition:transform .25s ease} 692button.tws-cp-thumb:focus-visible{outline:3px solid #C8102E;outline-offset:-3px} 693button.tws-cp-arrow{position:absolute;left:50%;z-index:3;width:36px;height:36px;margin-left:-18px;border:0;border-radius:50%;padding:0;background:rgba(35,31,32,.8);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.25);transition:opacity .2s} 694button.tws-cp-arrow svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round} 695button.tws-cp-arrow:hover{background:#C8102E} 696button.tws-cp-arrow[disabled]{opacity:0;pointer-events:none} 697.tws-cp-arrow--up{top:8px}.tws-cp-arrow--down{bottom:8px} 698@media (max-width:767px){ 699 .tws-cp-hero--gal{aspect-ratio:auto;grid-template-columns:1fr} 700 .tws-cp-main{aspect-ratio:1.88/1} 701 .tws-cp-side{position:static} 702 .tws-cp-thumbs{position:static;flex-direction:row;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory} 703 button.tws-cp-thumb{flex:0 0 calc((100% - 12px) / 3);aspect-ratio:4/3} 704 button.tws-cp-arrow{display:none} 705} 706.tws-cp-credit{position:absolute;right:0;bottom:0;max-width:60%;background:rgba(0,0,0,.5);color:#fff;font-size:10px;line-height:1.5;padding:6px 9px;margin:0} 707.tws-cp--closed .tws-cp-hero img{filter:grayscale(.85) brightness(.9)} 708.tws-cp-top{display:grid;grid-template-columns:1.1fr 1fr;border:1px solid #e3ded6;border-top:0;margin-bottom:0} 709.tws-cp-top--one{grid-template-columns:1fr;border-top:1px solid #e3ded6;margin:0 0 30px} 710.tws-cp-prize{padding:26px 28px} 711.tws-cp-lbl{font:700 11px/1 'Open Sans',Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#767676;margin:0 0 10px} 712#app#app .tws-cp-worth{font-family:'Montserrat', Arial, sans-serif !important;font-weight:900 !important;font-size:44px;line-height:1;color:#C8102E;margin:0 0 20px} 713.tws-cp .tws-cp-intro p{font-size:15px;line-height:1.55;margin:0 0 12px} 714.tws-cp .tws-cp-intro:last-child p:last-child{margin-bottom:0} 715.tws-cp .tws-cp-intro + ul.tws-cp-bul{margin-top:16px} 716.tws-cp ul.tws-cp-bul{list-style:none;padding:0;margin:0} 717.tws-cp ul.tws-cp-bul li{position:relative;padding:0 0 10px 26px;font-size:15px;line-height:1.45;list-style:none;margin:0} 718.tws-cp ul.tws-cp-bul li::before{content:"";position:absolute;
718left:0;top:5px;width:12px;height:12px;background:#C8102E;clip-path:polygon(0 50%,40% 90%,100% 10%,85% 0,40% 65%,12% 38%)} 719.tws-cp-enter{background:#231F20;color:#fff;padding:26px 28px;display:flex;flex-direction:column;gap:12px} 720#app#app .tws-cp-boxh{font-family:'Montserrat', Arial, sans-serif !important;font-weight:700 !important;font-size:22px;line-height:1.25} 721.tws-cp-enter .tws-cp-boxh{color:#fff} 722#app#app .tws-cp-boxp{font-size:14px;line-height:1.5} 723.tws-cp-enter .tws-cp-boxp{color:#d6d3cd} 724.tws-cp-count{display:flex;gap:8px} 725.tws-cp-count span{flex:1;background:#3a3536;text-align:center;padding:8px 0;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#bbb} 726#app#app .tws-cp-count b{display:block;font-family:'Montserrat', Arial, sans-serif !important;font-size:22px;line-height:1.1;color:#fff} 727.tws-cp-entry{margin:26px 0 0;scroll-margin-top:180px} 728.tws-cp-entry .tws-cp-h{margin-top:0 !important} 729.tws-cp-form{background:#fff;color:#231F20;border:1px solid #e3ded6;border-top:4px solid #C8102E;padding:8px 16px;min-height:120px} 730.tws-cp-form .tws-embed{margin:0 !important} 731.tws-cp-form iframe{width:100% !important;border:0;display:block} 732.tws-comp-btn--big{width:100%;min-height:50px !important;font-size:14px !important} 733#app#app .tws-cp-fine{font-size:12px;color:#aaa;text-align:center} 734.tws-cp-closedbox{background:#f5f3ef;padding:26px 28px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;border-left:1px solid #e3ded6} 735.tws-cp-top--one .tws-cp-closedbox{border-left:0} 736.tws-cp-tag{background:#231F20;color:#fff;font:700 11px/1 'Open Sans',Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;padding:6px 9px} 737.tws-cp-sponsor{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #e3ded6;font-size:13px;color:#767676} 738.tws-cp-sponsor img{max-height:44px;width:auto} 739.tws-cp-sponsor b{font:800 16px/1 'Open Sans',Arial,sans-serif;color:#231F20;border:2px solid #231F20;padding:6px 10px} 740.tws-cp-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:26px 0} 741.tws-cp-stats--3{grid-template-columns:repeat(3,minmax(0,1fr))}.tws-cp-stats--2{grid-template-columns:repeat(2,minmax(0,1fr))}.tws-cp-stats--1{grid-template-columns:1fr} 742.tws-cp-stats div{border-top:4px solid #C8102E;background:#f5f3ef;padding:16px;text-align:center} 743#app#app .tws-cp-stats b{display:block;font-family:'Montserrat', Arial, sans-serif !important;font-weight:900 !important;font-size:30px;line-height:1.1;color:#231F20} 744.tws-cp-stats span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#767676} 745.tws-cp-story{margin-top:26px;border:1px solid #e3ded6;background:#fff} 746#app#app .tws-cp-storyh{font-family:'Montserrat', Arial, sans-serif !important;font-weight:700 !important;font-size:22px;line-height:1.3;padding:18px 24px;border-bottom:1px solid #e3ded6;background:#f5f3ef} 747.tws-cp-storyb{padding:4px 24px 20px} 748.tws-cp-storyb > section:first-child{margin-top:16px !important} 749.tws-cp-storyb .container{padding-left:0 !important;padding-right:0 !important;max-width:none !important} 750.tws-cp-storyb > section:last-child,.tws-cp-storyb > section:last-child .container,.tws-cp-storyb > section:last-child .container > *{margin-bottom:0 !important;padding-bottom:0 !important} 751.tws-cp-storyb > section:last-child .container > :last-child > :last-child{margin-bottom:0 !important} 752#app#app .tws-cp-h{font-family:'Montserrat', Arial, sans-serif !important;font-weight:700 !important;font-size:24px;line-height:1.3;margin:30px 0 12px} 753.tws-cp-gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0} 754.tws-cp-gal--2{grid-template-columns:repeat(2,minmax(0,1fr))}.tws-cp-gal--1{grid-template-columns:1fr} 755.tws-cp-gal figure{margin:0} 756.tws-cp-gal img{width:100% !important;height:auto !important;aspect-ratio:4/3;object-fit:cover;display:block;border:1px solid #e3ded6;background:#fff} 757/* 1.8.0: Show the whole picture (Layout tab) â product shots on white are not cropped */
758.tws-cp--whole button.tws-cp-thumb img,.tws-cp--whole .tws-cp-gal img{object-fit:contain !important;background:#fff} 759/* 1.8.9: the main picture always fills its box, proportions kept, centred. Whatever does not fit 760 is cropped evenly from the top and bottom or the sides; never any white space. */ 761.tws-cp-hero img[data-tws-cp-main]{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;max-width:none !important;max-height:none !important;transform:none !important;object-fit:cover !important;object-position:50% 50% !important} 762.tws-cp-gal figcaption{font-size:12px;color:#767676;margin-top:6px} 763.tws-cp-det{background:#f5f3ef;border-left:4px solid #231F20;padding:20px 24px;display:grid;grid-template-columns:auto 1fr;gap:10px 22px;font-size:15px;margin:0} 764.tws-cp-det dt{font-weight:700}.tws-cp-det dd{margin:0} 765.tws-cp-faq{border-top:1px solid #e3ded6} 766.tws-cp-faq details{border-bottom:1px solid #e3ded6} 767.tws-cp-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;padding:14px 0;font-weight:600;font-size:15px} 768.tws-cp-faq summary::-webkit-details-marker{display:none} 769.tws-cp-faq summary::after{content:"+";color:#C8102E;font-size:20px;line-height:1} 770.tws-cp-faq details[open] summary::after{content:"\2212"} 771.tws-cp-faq details div{padding:0 0 16px;font-size:15px;line-height:1.55} 772.tws-cp-tc{font-size:13px;color:#767676;margin-top:16px} 773#app#app .tws-cp-tc a{color:#231F20;text-decoration:underline} 774.tws-cp-more{margin:26px 0} 775.tws-cp-more .tws-comp-card{border:1px solid #e3ded6} 776@media (max-width:1023px){ 777 .tws-cp-top{grid-template-columns:1fr} 778 .tws-cp-enter{order:-1} 779 .tws-cp-closedbox{border-left:0;order:-1} 780 .tws-cp-stats{grid-template-columns:repeat(2,minmax(0,1fr))} 781 #app#app .tws-cp-worth{font-size:36px} 782 .tws-cp-gal{grid-template-columns:repeat(2,minmax(0,1fr))} 783 .tws-cp-gal figure:nth-child(n+3){display:none} 784} 785/* pop-up and bar */ 786.tws-comp-toast{position:fixed;left:24px;bottom:24px;z-index:99990;width:400px;max-width:calc(100vw - 32px);display:flex;background:#fff;color:#231F20;border-top:4px solid #C8102E;box-shadow:0 12px 40px rgba(0,0,0,.28);transform:translateY(20px);opacity:0;transition:transform .3s ease,opacity .3s ease} 787.tws-comp-toast.is-in{transform:none;opacity:1} 788.tws-comp-toast[hidden],.tws-comp-bar[hidden]{display:none !important} 789.tws-comp-toast img{width:120px;object-fit:cover;display:block;flex:none} 790.tws-comp-tb{display:flex;flex-direction:column;gap:6px;padding:14px 38px 14px 14px} 791.tws-comp-tk{font:700 10px/1 'Open Sans',Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#C8102E} 792#app#app .tws-comp-tt,.tws-comp-tt{font-family:'Montserrat', Arial, sans-serif !important;font-weight:700 !important;font-size:15px;line-height:1.3} 793.tws-comp-tm{font:700 11px/1.3 'Open Sans',Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em;color:#C8102E} 794#app#app a.tws-comp-tl,.tws-comp-toast a.tws-comp-tl{font:700 12px/1 'Open Sans',Arial,sans-serif !important;color:#231F20 !important;text-decoration:underline} 795.tws-comp-x{position:absolute;right:6px;top:6px;width:30px;height:30px;border:0;background:transparent;color:#888;font-size:22px;line-height:1;cursor:pointer} 796.tws-comp-bar{position:fixed;left:0;right:0;bottom:0;z-index:99990;display:flex;align-items:center;gap:12px;padding:10px 40px 10px 12px;background:#231F20;color:#fff;border-top:3px solid #C8102E} 797.tws-comp-bar img{width:52px;height:52px;object-fit:cover;flex:none} 798#app#app .tws-comp-bt,.tws-comp-bt{flex:1;font-family:'Montserrat', Arial, sans-serif !important;font-weight:700 !important;font-size:14px;line-height:1.25} 799.tws-comp-bt small{display:block;font:600 11px/1.3 'Open Sans',Arial,sans-serif;color:#ff8a90;margin-top:3px} 800#app#app .tws-comp-bar a,.tws-comp-bar a{background:rgb(var(--color-primary,200,16,46));color:#1d1d1b !important;font:700 12px/1 'Open Sans',Arial,sans-serif !important;text-transform:uppercase;letter-spacing:.06em;padding:12px;text-decoration:none !important} 801.tws-comp-bar .tws-comp-x{top:50%;transform:translateY(-50%);color:#bbb} 802@media (min-width:768px){.tws-comp-bar{display:none !important}} 803@media (max-width:767px){.tws-comp-toast{left:16px;bottom:16px}.tws-comp-toast img{width:90px}} 804</style> 805<style id="tws-comp-listing-css">li:has(.tws-comp-listing-line--open)>div.relative::after{content:"Enter now \203A";position:absolute;
805left:0;bottom:14px;z-index:3;pointer-events:none;background:#C8102E;color:#fff;font:700 12px/1 'Open Sans',Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;padding:8px 12px;box-shadow:0 2px 6px rgba(0,0,0,.25)}</style> 806<style id="tws-comp-closed-css">.tws-comp-closed{color:#C8102E;font-weight:700;text-transform:uppercase;letter-spacing:.02em}</style> 807<link rel="icon" href="/app/uploads/sites/2/2025/01/cropped-GJ-Favicons2-32x32.png" sizes="32x32" /> 808<link rel="icon" href="/app/uploads/sites/2/2025/01/cropped-GJ-Favicons2-192x192.png" sizes="192x192" /> 809<link rel="apple-touch-icon" href="/app/uploads/sites/2/2025/01/cropped-GJ-Favicons2-180x180.png" /> 810<meta name="msapplication-TileImage" content="/app/uploads/sites/2/2025/01/cropped-GJ-Favicons2-270x270.png" /> 811<style id="tws-nav-subcategories"> 812@media only screen and (min-width: 1024px) { 813 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.mega-menu-item-has-children, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.menu-item-has-children { 814 position: relative !important; 815 } 816 817 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.mega-menu-item-has-children > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.menu-item-has-children > ul.mega-sub-menu { 818 position: absolute !important; 819 top: var(--tws-subs-top, 100%) !important; 820 left: 0 !important; 821 right: auto !important; 822 width: -moz-max-content !important; 823 width: max-content !important; 824 min-width: 100% !important; 825 max-width: 320px !important; 826 padding: 0 !important; 827 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18) !important; 828 } 829 830 /* An item close to the right hand edge opens leftwards instead. */ 831 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.mega-menu-item-has-children > ul.mega-sub-menu.tws-subs-flip, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.menu-item-has-children > ul.mega-sub-menu.tws-subs-flip { 832 left: auto !important; 833 right: 0 !important; 834 } 835 836 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.mega-menu-item-has-children ul.mega-sub-menu li.mega-menu-item, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.menu-item-has-children ul.mega-sub-menu li.mega-menu-item { 837 display: block !important; 838 float: none !important; 839 clear: both !important; 840 width: 100% !important; 841 margin: 0 !important; 842 padding: 0 !important; 843 border: 0 !important; 844 } 845 846 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.mega-menu-item-has-children ul.mega-sub-menu li.mega-menu-item > a.mega-menu-link, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.menu-item-has-children ul.mega-sub-menu li.mega-menu-item > a.mega-menu-link { 847 display: block !important; 848 width: auto !important; 849 margin: 0 !important; 850 padding: var(--tws-subs-pad-y, 11px) var(--tws-subs-pad-x, 20px) !important; 851 line-height: var(--tws-subs-line-height, 1.6) !important; 852 border: 0 !important; 853 white-space: nowrap !important; 854 text-decoration: none !important; 855 } 856 857 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.mega-menu-item-has-children ul.mega-sub-menu li.mega-menu-item > a.mega-menu-link, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.menu-item-has-children ul.mega-sub-menu li.mega-menu-item > a.mega-menu-link:hover, 858 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.mega-menu-item-has-children ul.mega-sub-menu li.mega-menu-item > a.mega-menu-link, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.menu-item-has-children ul.mega-sub-menu li.mega-menu-item > a.mega-menu-link:focus, 859 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.mega-menu-item-has-children ul.mega-sub-menu li.mega-menu-item > a.mega-menu-link, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout.menu-item-has-children ul.mega-sub-menu li.mega-menu-item > a.mega-menu-link:active { 860 text-decoration: none !important; 861 } 862} 863</style> 864 <style id="wp-custom-css"> 865 /* TWS CUSTOM STYLING - current stylesheet (v2_20). Single live version; Per-version changelog follows below. */ 866 867/* 1_2 â Mobile advert block. */ 868/* 1_3 â Boxed content frames and buttons. */ 869/* 1_4 â Cleaner AdRotate blocks. */ 870/* 1_5 â Embedded video player styling. */ 871/* 1_6 â Venue listing. */ 872/* 1_7 â Reduced portrait image height. */ 873/* 1_8 â Dual portrait and landscape images. */ 874/* 1_9 â Fixed the swiper mobile media query (missing px), a stray token in the venue-entry margin, and merged duplicate image rules. */
875/* 2_0 â .tws-price-box (RRP and link box) in the theme primary colour, replacing hard-coded red inline styles. */ 876/* 2_1 â Three more dual-figure shapes: .tws-dual-square, .tws-dual-portrait-short, .tws-dual-portrait-tall. Existing pairs unchanged. */ 877/* 2_2 â .tws-dual-video: two 9:16 video embeds side by side. Needs a class because the editor strips inline display:flex on save. */ 878/* 2_3 â .tws-faq-question now also works on a body subheading via .single-post, not only inside .tws-faq-section. */ 879/* 2_4 â .tws-product-grid: card grid for kit-bag, gift and best-of roundups. -2 default, -3, -4; one column on mobile. */ 880/* 2_5 â .tws-cta: full-width promo, cover image one side, heading, copy and button the other. Image never cropped. */ 881/* 2_6 â .tws-panel: tinted feature panel with a solid header bar. Bar uses the brand PRIMARY colour (Lee's call, over the white-on-gold contrast). */ 882/* 2_7 â .tws-embed-frame: the tws-frame border with no padding or margin, so an embed sits flush. Also closed the unterminated 2_6 comment, which was swallowing .primary-colour and .secondary-colour on every site. */ 883/* 2_8 â .tws-strand-break: divider between round-up strands. Sets its own border, because the Tailwind reset makes a plain hr invisible. */ 884/* 2_9 â .tws-product-grid-1: one card per row, image left and copy right, so a single product fills the content width. */ 885/* 2_10 â A product grid last inside a tws-frame loses its bottom margin. Added .tws-frame-number for the leading "No. 1" on a roundup heading. */ 886/* 2_11 â tws-product-grid-1 image column to an even 50 per cent; the grid bottom margin removed outright; tws-frame-number up to 2.1em on a tight line height. */ 887/* 2_12 â .tws-photo-grid: a photo set on an even grid. Columns -4 (default), -3, -2; shapes tws-photo-square, -landscape, -portrait-short, -portrait-tall. Two across below 1024px, and the shape never changes. */ 888/* 2_13 â Comments and changelog condensed throughout. No CSS rule changed, so this is byte-different from 2_12 but visually identical. */ 889/* 2_14 â .tws-photo-grid tiles are top-aligned. The theme's figure{justify-content:center} was surviving into the grid, so a tile with a one-line caption had its picture pushed down by half a caption line and sat out of line with its neighbours. */ 890/* 2_15 â A video embedded inside a .tws-frame now fills the frame width at 16:9. WordPress oEmbeds a bare URL at a fixed 500x281, which sat small and hard left inside the box. */ 891/* 2_16 â .tws-panel-media: a cut-out product picture on a tws-panel, breaking out above and below the box. The copy stops short of it on desktop; on mobile the picture drops under the copy. */ 892/* 2_17 â The v2_15 video rule was matching EVERY iframe inside a tws-frame, so a form embed (the ShootingUK reader survey) was cropped to a 16:9 letterbox. Rescoped to video hosts and the WordPress video wrapper. */ 893/* 2_18 â Top banner ad slots reserve their height before Google fills them (mobile 100px each; desktop 250px billboard, 90px leaderboard). Fixes the mobile layout shift that pushed the whole article down when the ads arrived â CLS 0.3, Search Console "needs improvement" on every URL. */ 894/* 2_19 â Homepage on mobile: removed the 3px white line between the nav and the hero carousel (spacer +18px against the carousel's -15px pull-up). */ 895/* 2_20 â .tws-product-grid columns are minmax(0, 1fr), so no card can push the grid wider than the text column. The in-article promos (tws-bss, tws-promo, tws-nlad) were being injected inside cards, frames and panels; the tws-promo-placement mu-plugin now moves them between the boxes, a moved promo takes the full grid row, and one still inside a box is hidden until it is moved. */ 896 897 898.primary-colour { color: rgb(var(--color-primary)); } 899.secondary-colour { color: rgb(var(--color-secondary)); } 900 901/* Close gap between nav buttons */ 902#mega-menu-primary_navigation { gap: 0px; } 903 904/* Make titles and standfirsts full width on desktop */ 905main > section:first-child .lg\:w-\[calc\(70\%\-20px\)\] { width: 100% !important; } 906 907/* Adjustments to H1 headings */ 908 909/* Desktop */ 910.single-post h1 { font-size: 45px !important; } 911 912/* Mobile */ 913@media (max-width:600px) { 914 .single-post h1 { font-size: 28px !important; line-height: 1.15 !important; } 915} 916 917/* Adjustments to H2 headings */ 918.single-post h2 { font-size: 26px !important; padding-top: 15px; padding-bottom: 10px; margin: 0px !important; } 919 920/* Mobile */ 921@media (max-width:600px) { 922 .single-post h2 { font-size: 24px !important; line-height: 1.2 !important; } 923} 924 925/* Homepage Slider */ 926.swiper-wrapper h2 { font-size: 44px!important; line-height:1.15em!important; padding-bottom: 10px;} 927.swiper-wrapper p { font-size: 20px!important; line-height:1.3em!important; padding-bottom: 10px;} 928 929@media (max-width:1024px) { 930.swiper-wrapper h2 { font-size: 34px!important; line-height:1.15em!important; } 931.swiper-wrapper p { font-size: 18px!important; line-height:1.2em!important; } 932} 933 934@media (max-width:600px) { 935.swiper-wrapper h2 { font-size: 28px!important; line-height:1.15em; } 936.swiper-wrapper p { font-size: 15px!important; line-height:1.2em; } 937} 938 939/* START - AdRotate stacked ad block */ 940.adrotate-ad-container, .a-single.a-4, .ad-stack, .billboard-and-leaderboard-ad { background: #ffffff!important; } 941.a-single.a-4, .ad-stack { display: flex !important; flex-direction: column !important; align-items: center !important; gap: 0 !important; width: 100% !important; } 942.a-single.a-4 .billboard-and-leaderboard-ad, .ad-stack .billboard-and-leaderboard-ad { width: 100% !important; min-width: 320px !important; display: flex !important; justify-content: center !important; align-items: center !important; padding: 0 !important; margin: 0 !important; border: 0 !important; height: auto !important; min-height: 0 !important; overflow: visible !important; } 943 944/* Reserve the top banner slots' height BEFORE Google fills them - CLS fix, 28 Aug 2026. 945 The rule above zeroes min-height, so the page painted with the article at the top and 946 then dropped 50-220px on mobile when the Billboard and Leaderboard arrived (PageSpeed 947 measured 0.188 of a 0.3 CLS on the main element, Sporting Gun article, mobile). Reserving the 948 tallest creative each slot can serve (GAM mapping: mobile 320x100 / 320x50, desktop 949 billboard 970x250, leaderboard 970x90 / 728x90) means a filled slot moves nothing. 950 Cost: a blank strip on the occasions a slot goes unfilled. min-height, not height, so 951 an oversized creative still shows. Keep these numbers in step with the GAM size 952 mapping. Do NOT display:none an empty slot - Google treats a hidden slot as 953 unviewable and may stop filling it. */ 954@media (max-width:1023px) { 955 .a-single.a-4 .billboard-and-leaderboard-ad, 956 .ad-stack .billboard-and-leaderboard-ad { min-height: 100px !important; } 957} 958@media (min-width:1024px) { 959 .a-single.a-4 .billboard-and-leaderboard-ad:first-child, 960 .ad-stack .billboard-and-leaderboard-ad:first-child { min-height: 250px !important; } 961 .a-single.a-4 .billboard-and-leaderboard-ad + .billboard-and-leaderboard-ad, 962 .ad-stack .billboard-and-leaderboard-ad + .billboard-and-leaderboard-ad { min-height: 90px !important; } 963} 964 965/* Gap between the fixed nav and the page content - desktop, all templates. 966 Measured, not hard-coded: the tws-header-height mu-plugin publishes the live header 967 height as --tws-header-h, so one expression covers all four spacer variants (these 968 were 150 / 114 / 160 / 124, each retuned per site). The var() fallback applies on 969 first paint and if the script ever fails, so it is deliberately generous - too large 970 shows a gap, too small hides content behind the nav. */ 971@media (min-width:1024px) { 972 .with-ad-and-cta, 973 .with-ad-and-no-cta, 974 .without-ad-and-has-cta, 975 .without-ad-and-cta { margin-top: calc(var(--tws-header-h, 126px) + 32px) !important; } 976 977 /* Homepage hero: a 16px band rather than the article's +32px. Flush measured exactly 978 right, but a full-bleed photo running to the nav edge reads as if it continues 979 behind it. Scoped to body.home and the two ad-less variants only: on a homepage 980 that does carry a top banner the spacer holds that advert, and flush would push it 981 against the nav. Needs the measured value - the header differs per site (126px 982 Airgun World, 118px ShootingUK) and a few pixels over shows as a white line. */ 983 body.home .without-ad-and-has-cta, 984 body.home .without-ad-and-cta { margin-top: calc(var(--tws-header-h, 126px) + 16px) !important; } 985 986 /* NOTE: the hero sidebar's own padding-top: 40px, set inline in 987 blocks/hero-banner-carousel/render.blade.php, is deliberately LEFT ALONE. Zeroed 988 on 28 July and reverted the same day - the "Latest news" heading needs that air. */ 989} 990 991/* Spacing between stacked banner ads - applied only BETWEEN TWO FILLED SLOTS. 992 Google prints every slot wrapper whether it fills or not; an unfilled one renders at 993 height 0 but is still a flex item, so it used to collect the 10px gap plus a 10px 994 margin and leave 20px of empty space (seen on Trout & Salmon). The gap is now 0 and 995 the 20px comes from :has(iframe) on both sides. Deliberately NOT display:none on an 996 empty slot - Google treats a hidden slot as unviewable and may then never fill it. 997 Self-correcting: if a slot fills late, :has() re-evaluates. */ 998.adrotate-ad-container .ad-stack, .ad-stack, .a-single.a-4 { gap: 0 !important; } 999.a-single.a-4 .billboard-and-leaderboard-ad + .billboard-and-leaderboard-ad, .ad-stack .billboard-and-leaderboard-ad + .billboard-and-leaderboard-ad { margin-top: 0 !important; } 1000.ad-stack .billboard-and-leaderboard-ad:has(iframe) ~ .billboard-and-leaderboard-ad:has(iframe), 1001.a-single.a-4 .billboard-and-leaderboard-ad:has(iframe) ~ .billboard-and-leaderboard-ad:has(iframe) { margin-top: 20px !important; } 1002 1003/* Gap between the fixed nav and the top banner ads - mobile, all templates. 1004 Was 125px + 20px padding = 145px effective, less than the mobile header (about 152px 1005 when the CTA strapline wraps to two lines), so the ad sat behind the nav. padding-top 1006 removed so margin-top is the true offset. Now measured via --tws-header-h from the 1007 tws-header-height mu-plugin, which removes the three-line-strapline risk; the +18px 1008 is the clear air Lee settled on against a measured 153px header. */ 1009@media (max-width:1023px) { 1010 .with-ad-and-cta, 1011 .with-ad-and-no-cta, 1012 .without-ad-and-has-cta, 1013 .without-ad-and-cta { margin-top: calc(var(--tws-header-h, 152px) + 18px) !important; padding-top: 0 !important; } 1014 .with-ad-and-cta, .with-ad-and-no-cta { background: transparent !important; background-color: transparent !important; } 1015 .with-ad-and-cta > section, .with-ad-and-no-cta > section { margin-top: 0 !important; background: transparent !important; background-color: transparent !important; } 1016 /* Homepage hero, mobile: the carousel pulls itself up 15px (mt-[-15px] on #hero-banner in 1017 blocks/hero-banner-carousel/render.blade.php), so the +18px above left a 3px white line 1018 under the nav, most visible on the black ShootingUK header. +14px lets the photo tuck 1019 1px under the nav so a rounded header height can never open a hairline. Same scoping 1020 as the desktop body.home rule - ad-less variants only. */ 1021 body.home .without-ad-and-has-cta, 1022 body.home .without-ad-and-cta { margin-top: calc(var(--tws-header-h, 152px) + 14px) !important; } 1023 /* gap handled by the :has(iframe) rule above so unfilled slots add nothing */ 1024 .a-single.a-4, .ad-stack { display: flex !important; flex-direction: column !important; align-items: center !important; gap: 0 !important; width: 100% !important; } 1025} 1026.adrotate-ad-container { margin-top: 0 !important; margin-bottom: 10px !important; padding-top: 0 !important; } 1027.adrotate-ad-container section { margin-top: 10px !important; } 1028 1029/* Sidebar advert slots - kill the gap left by an unfilled slot. 1030 Each sidebar advert is wrapped in a div classed "flex justify-center items-center 1031 mb-[40px]" (single-post, single-video-post and blocks/paginated-posts Blade files). 1032 That 40px is unconditional, so every GPT slot that does not fill still contributes it
1033 and the gaps go uneven. Filled slots now get 30px, unfilled ones nothing. The class 1034 name stays mb-[40px] because that is what Blade prints; only the value is overridden. 1035 That class combination is used nowhere else. As above, the slot is never hidden. */ 1036.flex.justify-center.items-center.mb-\[40px\] { 1037 margin-bottom: 0 !important; 1038} 1039.flex.justify-center.items-center.mb-\[40px\]:has(iframe), 1040.flex.justify-center.items-center.mb-\[40px\]:has(img) { 1041 margin-bottom: 30px !important; 1042} 1043 1044/* 1px grey outline around every rendered advert - white creatives were disappearing 1045 into the page. outline rather than border on purpose: it sits outside the box and 1046 takes no layout space, so a fixed-size creative is neither nudged nor clipped. Drawn 1047 on the rendered iframe or image only, so an unfilled slot shows nothing rather than a 1048 grey line. The google_ads_iframe_ prefix catches every Google-served advert; the two 1049 wrapper selectors catch direct AdRotate image banners. */ 1050[id^="google_ads_iframe_"] iframe, 1051.billboard-and-leaderboard-ad img, 1052.flex.justify-center.items-center.mb-\[40px\] img { 1053 outline: 1px solid #cccccc !important; 1054} 1055 1056/* END - AdRotate stacked ad block */ 1057 1058/* Embedded Video styling - making the player larger */ 1059/* Make embedded video full width of its column */ 1060.wysiwyg-content .inline-video-block-container { width: 100% !important; } 1061 1062/* Default / LARGE video - 80% of the column */ 1063.wysiwyg-content .inline-video-block-container iframe { 1064 width: 80% !important; 1065 height: auto !important; 1066 aspect-ratio: 16 / 9 !important; 1067 max-width: none !important; 1068 display: block !important; 1069 margin: 0 auto 20px !important; 1070} 1071 1072/* SMALL video - 50% of the column */ 1073.wysiwyg-content .inline-video-block-container.video-small iframe { 1074 width: 50% !important; 1075} 1076 1077/* Override the fixed mobile sizing too */ 1078@media (max-width:500px) { 1079 .wysiwyg-content .inline-video-block-container iframe { 1080 width: 100% !important; 1081 height: auto !important; 1082 aspect-ratio: 16 / 9 !important; 1083 margin: 0 auto 10px !important; 1084 } 1085} 1086/* Yoast breadcrumbs - tighten the gap below the top banner ads, desktop only. 1087 The space above comes from the block-container Blade component, which we cannot reach 1088 without a rebuild: lg:mt-[40px] on desktop but only mt-[20px] on mobile, so a shared 1089 -20px cancelled the mobile gap and pulled the breadcrumbs into the bottom ad. */ 1090.yoast-breadcrumbs { margin-top: 0px !important; margin-bottom: 25px !important; } 1091@media (min-width:1024px) { 1092 /* Desktop: the section carries lg:mt-[40px], so -20px halves the gap. Scoped to 1093 pages that actually carry a header advert - on an ad-less page the spacer div is 1094 empty, so the section margin collapses into it rather than adding to it, and the 1095 -20px left the breadcrumbs flush against the nav (seen on airgun-world.com). */ 1096 .min-h-screen:has(> .with-ad-and-cta) .yoast-breadcrumbs, 1097 .min-h-screen:has(> .with-ad-and-no-cta) .yoast-breadcrumbs { margin-top: -20px !important; } 1098} 1099 1100/* Reduce spacing beneath author/share block */ 1101.single-post .wysiwyg-content section.relative.lg\:mt-\[40px\].mt-\[20px\] { margin-top: 10px !important; } 1102 1103/* Change Leading of 1 to 1.2 for better readability of 'Excerpt' field */ 1104.leading-\[1\] { line-height: 1.2 !important; } 1105 1106/* Increase size of author name */ 1107.author-details span:first-child { font-size: 15px !important; } 1108 1109/* Sentence case for sidebar blocks - target the specific h3 */ 1110h3.block.w-full.md\:w-fit.bg-black.text-white { text-transform: lowercase; } 1111h3.block.w-full.md\:w-fit.bg-black.text-white::first-letter { text-transform: uppercase; } 1112 1113/* Reduce spacing between Gutenberg/editorial blocks */ 1114.spu-content, .wysiwyg-content { display: flex; flex-direction: column; gap: 12px; } 1115 1116/* Reduce height of portrait and landscape images */ 1117.wp-caption.alignnone { 1118 text-align: center; /* centres the image and caption in the text column */ 1119} 1120 1121.wp-caption.alignnone img { 1122 max-height: 70vh !important; /* cap relative to viewport height */ 1123 width: auto !important; /* width follows the capped height, preserving ratio */ 1124 height: auto !important; /* lets landscape images behave normally */ 1125 max-width: 100% !important; /* never wider than the text column */ 1126 margin-inline: auto; /* centres within the figure */ 1127 display: block; 1128} 1129 1130/* ============================================================ 1131 tws-dual-figure 1132 Two images side by side on desktop, each with its own caption, 1133 stacked on mobile. The default height suits portrait; add 1134 tws-dual-landscape to the wrapper for a shorter 4:3 box. 1135 ============================================================ */ 1136 1137.tws-dual-figure { 1138 display: flex; 1139 gap: 30px; 1140 align-items: self-start; /* tops aligned; equal-height handled per image */ 1141 margin: 40px 0; 1142} 1143
1144/* Beat the theme's figure.wp-caption{display:flex;flex-direction:column; 1145 max-width:100%} and its 40px figure margins */ 1146.tws-dual-figure figure.wp-caption { 1147 flex: 1 1 0 !important; /* two equal columns */ 1148 max-width: 50% !important; 1149 margin: 0 !important; 1150 display: flex !important; 1151 flex-direction: column !important; 1152} 1153 1154.tws-dual-figure figure.wp-caption img { 1155 width: 100% !important; 1156 height: 60vh !important; /* shared height equalises the pair (portrait default) */ 1157 object-fit: cover !important; /* fill the box, crop gracefully */ 1158 object-position: center !important; 1159 max-width: 100% !important; 1160} 1161 1162/* Landscape variant: two 4:3 images side by side, shorter box. 1163 Add tws-dual-landscape to the wrapper alongside tws-dual-figure. */ 1164.tws-dual-figure.tws-dual-landscape figure.wp-caption img { 1165 height: 36vh !important; /* tune to taste; suits 4:3 in two columns */ 1166} 1167 1168/* ---- v2_1 side-by-side variants ---------------------------- 1169 One modifier on the wrapper alongside tws-dual-figure, each a 1170 fixed ratio so the two always match height: 1171 .tws-dual-square two square (1:1) 1172 .tws-dual-portrait-short two shorter portrait (4:5) 1173 .tws-dual-portrait-tall two taller portrait (2:3) 1174 .tws-dual-landscape two landscape (4:3), above 1175 With no modifier the original 60vh portrait box applies, so 1176 existing posts are untouched. */ 1177 1178.tws-dual-figure.tws-dual-square figure.wp-caption img { 1179 height: auto !important; 1180 aspect-ratio: 1 / 1 !important; /* square */ 1181} 1182 1183.tws-dual-figure.tws-dual-portrait-short figure.wp-caption img { 1184 height: auto !important; 1185 aspect-ratio: 4 / 5 !important; /* shorter portrait */ 1186} 1187 1188.tws-dual-figure.tws-dual-portrait-tall figure.wp-caption img { 1189 height: auto !important; 1190 aspect-ratio: 2 / 3 !important; /* taller portrait */ 1191} 1192/* ---- end v2_1 side-by-side variants --------------------------------------- */ 1193 1194/* Stack vertically on mobile */ 1195@media (max-width: 767px) { 1196 .tws-dual-figure { 1197 flex-direction: column; 1198 gap: 0; 1199 } 1200 .tws-dual-figure figure.wp-caption { 1201 max-width: 100% !important; 1202 margin: 0 0 20px 0 !important; 1203 } 1204 .tws-dual-figure figure.wp-caption img { 1205 height: auto !important; /* natural height when stacked */ 1206 max-height: 80vh !important; 1207 object-fit: contain !important; 1208 } 1209 /* Let the v2_1 variants fall back to natural height when stacked */ 1210 .tws-dual-figure.tws-dual-square figure.wp-caption img, 1211 .tws-dual-figure.tws-dual-portrait-short figure.wp-caption img, 1212 .tws-dual-figure.tws-dual-portrait-tall figure.wp-caption img { 1213 aspect-ratio: auto !important; 1214 } 1215} 1216 1217/* START - TWS triple figure (3 square images) */ 1218.tws-triple-figure { 1219 display: flex; 1220 gap: 24px; 1221 align-items: flex-start; 1222 margin: 40px 0; 1223} 1224 1225.tws-triple-figure figure.wp-caption { 1226 flex: 1 1 0 !important; 1227 max-width: calc(33.333% - 16px) !important; 1228 margin: 0 !important; 1229 display: flex !important; 1230 flex-direction: column !important; 1231} 1232 1233.tws-triple-figure figure.wp-caption img { 1234 width: 100% !important; 1235 aspect-ratio: 1 / 1 !important; 1236 object-fit: cover !important; 1237 object-position: center !important; 1238 height: auto !important; 1239 max-width: 100% !important; 1240} 1241 1242/* Stack vertically on mobile */ 1243@media (max-width:767px) { 1244 .tws-triple-figure { 1245 flex-direction: column; 1246 gap: 0; 1247 } 1248 .tws-triple-figure figure.wp-caption { 1249 max-width: 100% !important; 1250 margin: 0 0 20px 0 !important; 1251 } 1252 .tws-triple-figure figure.wp-caption img { 1253 aspect-ratio: 1 / 1 !important; 1254 } 1255} 1256/* END - TWS triple figure */ 1257 1258/* ============================================================ 1259 START - TWS photo grid (tws-photo-grid) v2_12 1260 An even grid for a SET of photographs. Every tile in one grid 1261 shares one shape, so mixed originals sit on a clean grid with 1262 no ragged heights. The wrapper takes a column count and a shape: 1263 columns tws-photo-grid-4 (default), -3, -2 1264 shape tws-photo-square 1:1 (default) 1265 tws-photo-landscape 4:3 1266 tws-photo-portrait-short 4:5 1267 tws-photo-portrait-tall 2:3 1268 Same four shape names as tws-dual-figure. Every count drops to 1269 two across below 1024px; the shape never changes. Class-based 1270 because inline grid is stripped from post content on save. 1271 Supersedes tws-triple-figure for photo sets. 1272 ============================================================ */ 1273 1274.tws-photo-grid { 1275 display: grid; 1276 grid-template-columns: repeat(4, 1fr); 1277 gap: 10px; 1278 margin: 34px 0; 1279} 1280.tws-photo-grid.tws-photo-grid-4 { grid-template-columns: repeat(4, 1fr); } 1281.tws-photo-grid.tws-photo-grid-3 { grid-template-columns: repeat(3, 1fr); } 1282.tws-photo-grid.tws-photo-grid-2 { grid-template-columns: repeat(2, 1fr); } 1283 1284/* Beat the theme's figure.wp-caption rules and its 40px figure margins */ 1285.tws-photo-grid figure.wp-caption { 1286 margin: 0 !important; 1287 padding: 0 !important; 1288 width: 100% !important; 1289 max-width: 100% !important; 1290 display: flex !important; 1291 flex-direction: column !important; 1292 align-items: stretch !important; 1293 justify-content: flex-start !important; /* v2_14 - see below */ 1294} 1295 1296/* v2_14. Each tile is a grid item and stretches to the height of the 1297 tallest tile in its row. The theme sets figure{justify-content:center}, 1298 which this component did not override, so the picture-and-caption stack 1299 was being centred in that stretched box: a tile with a one-line caption 1300 had its picture pushed down by half a caption line while a neighbour 1301 with two lines stayed put, and the row looked ragged. Starting the 1302 stack at the top puts every picture in a row on the same line, and 1303 every caption with it. */ 1304 1305.tws-photo-grid figure.wp-caption img { 1306 width: 100% !important; 1307 height: auto !important; 1308 max-width: 100% !important; 1309 max-height: none !important; 1310 aspect-ratio: 1 / 1 !important; /* square is the default shape */ 1311 object-fit: cover !important; 1312 object-position: center !important; 1313 display: block !important; 1314 margin: 0 !important; 1315 background: #f0f0f0; 1316} 1317 1318/* ---- shape modifiers. Pick the shape the set already is: a 1319 portrait set in a portrait grid loses almost nothing, the same 1320 set in a landscape grid loses more than half the frame. ---- */ 1321.tws-photo-grid.tws-photo-square figure.wp-caption img { aspect-ratio: 1 / 1 !important; } 1322.tws-photo-grid.tws-photo-landscape figure.wp-caption img { aspect-ratio: 4 / 3 !important; } 1323.tws-photo-grid.tws-photo-portrait-short figure.wp-caption img { aspect-ratio: 4 / 5 !important; } 1324.tws-photo-grid.tws-photo-portrait-tall figure.wp-caption img { aspect-ratio: 2 / 3 !important; } 1325/* ---- end shape modifiers --------------------------------- */ 1326
1327/* Tile captions are optional and sit smaller than a body 1328 caption, because a full-size caption under a quarter-width 1329 tile reads heavier than the picture it belongs to. */ 1330.tws-photo-grid figure.wp-caption figcaption.wp-caption-text { 1331 font-size: 0.72rem !important; 1332 line-height: 1.35em !important; 1333 padding: 6px 0 0 0 !important; 1334 margin: 0 !important; 1335} 1336 1337/* One collective credit line under the whole grid, for a set 1338 that shares a photographer and needs no tile captions. */ 1339.tws-photo-grid-credit { 1340 font-size: 0.8rem !important; 1341 font-style: italic; 1342 color: #555555; 1343 text-align: right; 1344 margin: -24px 0 34px !important; 1345} 1346 1347/* Tablet and mobile: two across whatever the desktop count. 1348 The shape is deliberately NOT changed here - a portrait 1349 grid stays portrait on a phone. */ 1350@media (max-width: 1023px) { 1351 .tws-photo-grid, 1352 .tws-photo-grid.tws-photo-grid-4, 1353 .tws-photo-grid.tws-photo-grid-3, 1354 .tws-photo-grid.tws-photo-grid-2 { 1355 grid-template-columns: repeat(2, 1fr); 1356 gap: 8px; 1357 } 1358} 1359@media (max-width: 600px) { 1360 .tws-photo-grid { margin: 24px 0; } 1361 .tws-photo-grid figure.wp-caption figcaption.wp-caption-text { font-size: 0.68rem !important; } 1362} 1363/* END - tws-photo-grid */ 1364 1365/* Image caption fix */ 1366.wp-block-image figure, figure.wp-block-image { display: flex !important; flex-direction: column !important; align-items: center; } 1367.wp-block-image figcaption { margin-top: 0.4rem; font-size: 0.9rem ; } 1368figure.wp-block-image { margin: 1rem 0 !important; } 1369figcaption.wp-caption-text { font-size: 0.85rem !important; line-height: 1.3em!important; font-weight: 700 !important; font-style: italic !important; padding: 10px 0px 5px 0px; text-align: center !important; } 1370figure.wp-caption { align-items: center !important; } 1371 1372/* Ensure caption spans full width beneath image */ 1373.wp-block-image figcaption { width: 100% !important; text-align: center; } 1374 1375/* Related articles styling */ 1376.related-articles p { padding: 7px 0; border-bottom: 1px solid #f0f0f0; line-height: 1.6; } 1377.related-articles p:last-child { border-bottom: none; } 1378.related-articles a { text-decoration: none; color: inherit; } 1379.related-articles a:hover { text-decoration: underline; } 1380.related-articles strong { font-weight: 600; } 1381 1382/* FAQ section â title heading */ 1383.tws-faq-section h2.tws-faq-title { font-size: 22px; } 1384 1385/* FAQ section â individual questions */ 1386/* FAQ questions, and body question-led subheadings reusing the same look (v2_3) */ 1387.tws-faq-section .tws-faq-question, 1388.single-post .tws-faq-question { font-size: 20px; color: rgb(var(--color-primary)); } 1389 1390/* Review table styling */ 1391.tws-table-wrapper { margin-bottom: 20px } 1392@media (max-width:600px) { 1393 .tws-table-wrapper { overflow-x: auto } 1394} 1395 1396/* Specification Table */ 1397.tws-spec-table { width: 100%; border-collapse: collapse } 1398.tws-spec-table th { background-color: rgb(var(--color-primary)); color: #fff; padding: 5px; text-align: left; border-bottom: 1px solid #ddd } 1399.tws-spec-table td { padding: 5px; text-align: left; border-bottom: 1px solid #ddd } 1400.tws-spec-table tbody tr:nth-child(odd) { background-color: #f5f5f5 } 1401.tws-spec-table tbody tr:nth-child(even) { background-color: #e9e9e9 } 1402 1403/* Recipe meta strip â prep/cook times, serves, difficulty */ 1404.tws-recipe-meta { background-color: #f9f9f9; border-left: 4px solid rgb(var(--color-primary)); padding: 16px 20px; margin: 24px 0; } 1405.tws-recipe-meta ul { display: flex; flex-wrap: wrap; gap: 18px 32px; margin: 0; padding: 0; list-style: none !important; } 1406.tws-recipe-meta ul li { flex: 1 1 0; min-width: 120px; margin: 0; padding: 0; font-size: 1em; line-height: 1.4; color: #333333; list-style: none !important; } 1407.tws-recipe-meta ul li::before, .tws-recipe-meta ul li::marker { content: none !important; } 1408.tws-recipe-meta ul li strong { display: block; font-size: 0.95em; text-transform: uppercase; letter-spacing: 0.04em; color: rgb(var(--color-primary)); font-weight: 700; margin-bottom: 3px; } 1409 1410/* Stack vertically on small screens */ 1411@media (max-width:600px) { 1412 .tws-recipe-meta ul { flex-direction: column; gap: 14px; } 1413 .tws-recipe-meta ul li strong { display: inline; font-size: 0.95em; text-transform: none; letter-spacing: 0; color: #d13b2e; margin-bottom: 0; } 1414 .tws-recipe-meta ul li strong::after { content: " "; } 1415} 1416 1417/* Dividers above sections */ 1418.tws-recipe-method, .tws-faq-section, .related-articles { border-top: 1px solid #dddddd; padding-top: 28px; margin-top: 32px; } 1419.tws-recipe-method ~ h2 { margin-top: 0; padding-top: 0; } 1420.tws-recipe-method ~ h2::before { content: ''; display: block; border-top: 1px solid #e0e0e0; margin-top: 48px; margin-bottom: 40px; } 1421 1422/* Recipe Chef block */ 1423.tws-chef-bio { display: flex; gap: 24px; align-items: flex-start; border: 1px solid rgb(var(--color-primary)); border-radius: 0px; padding: 24px; margin: 48px 0; background-color: rgba(var(--color-primary), 0.1); } 1424.tws-chef-bio__image { flex: 0 0 300px; width: 300px; height: 300px; overflow: hidden; border-radius: 2px; } 1425.tws-chef-bio__image img { width: 100%; height: 100%; object-fit: cover; display: block; } 1426.tws-chef-bio__content { flex: 1; } 1427.tws-chef-bio__content h2 { margin-top: 0; margin-bottom: 12px; font-size: 1.1em; } 1428.tws-chef-bio__content p { margin-top: 0; margin-bottom: 12px; font-size: 0.95em; line-height: 1.6; } 1429.tws-chef-bio__content p:last-child { margin-bottom: 0; } 1430@media (max-width:640px) { 1431 .tws-chef-bio { flex-direction: column; } 1432 .tws-chef-bio__image { flex: 0 0 auto; width: 100%; height: 200px; } 1433} 1434
1435/* START - Father's Day Gifts*/ 1436#fathers-day-gifts { font-family: 'Georgia', 'Times New Roman', serif; margin: 2rem 0; } 1437#fathers-day-gifts .fdg-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; } 1438 1439/* Card */ 1440#fathers-day-gifts .fdg-card { display: flex; flex-direction: column; border: 2px solid #ddd; background: #fff; } 1441 1442/* Image area */ 1443#fathers-day-gifts .fdg-img-wrap { width: 100%; height: 300px; display: flex; align-items: center; justify-content: center; background: #fff; padding: 20px; box-sizing: border-box; border-bottom: 1px solid #ddd; } 1444#fathers-day-gifts .fdg-img-wrap img { max-width: 100%; max-height: 260px; width: auto; height: auto; object-fit: contain; display: block; } 1445 1446/* Card body */ 1447#fathers-day-gifts .fdg-body { padding: 18px; display: flex; flex-direction: column; flex: 1; } 1448#fathers-day-gifts .fdg-title { font-family: 'Georgia', 'Times New Roman', serif; font-size: 20px; font-weight: 800 !important; color: rgb(var(--color-primary)); margin: 0 0 8px; line-height: 1.4; } 1449#fathers-day-gifts .fdg-price { font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-weight: bold; color: #1a1a1a; margin: 0 0 10px; } 1450#fathers-day-gifts .fdg-desc { font-family: 'Open Sans', sans-serif; font-size: 16px; color: #444; line-height: 1.6; flex: 1; margin: 0 0 18px; } 1451 1452/* CTA button */ 1453#fathers-day-gifts .fdg-cta { display: block; width: 100%; padding: 12px 20px; background: rgb(var(--color-primary)); color: #fff; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: bold; text-decoration: none; text-align: center; letter-spacing: 0.04em; text-transform: uppercase; box-sizing: border-box; transition: background 0.2s ease; } 1454#fathers-day-gifts .fdg-cta:hover { background: rgb(var(--color-secondary)); color: #fff; text-decoration: none; } 1455 1456/* Responsive Grid settings */ 1457@media (max-width:960px) { 1458 #fathers-day-gifts .fdg-grid { grid-template-columns: repeat(2, 1fr); } 1459} 1460@media (max-width:600px) { 1461 #fathers-day-gifts .fdg-grid { grid-template-columns: 1fr; } 1462} 1463 1464/* Increase leading of p tags inside Father's Day CTA block */ 1465.full-width-text-image-cta p { line-height: 1.5 } 1466 1467/* END - Father's Day Gifts*/ 1468 1469/* Content frames and buttons */ 1470.tws-frame { border: 1px solid rgb(var(--color-primary)); border-left: 10px solid rgb(var(--color-primary)); padding: 28px 32px 24px; margin-top: 30px; margin-bottom: 40px; margin-right: 0px; } 1471.tws-frame:first-of-type { margin-top: 40px; } 1472.tws-frame h2 { margin-top: 0; } 1473 1474/* Embed frame - the tws-frame border with no padding and no margin, so an embed 1475 (iframe, oEmbed wrapper, form, map, player) sits flush to it. Embeds carry their 1476 own spacing. Use .tws-frame for normal copy blocks. */ 1477.tws-embed-frame { border: 1px solid rgb(var(--color-primary)); border-left: 10px solid rgb(var(--color-primary)); padding: 0; margin: 0; } 1478.tws-embed-frame > * { margin-top: 0; margin-bottom: 0; } 1479.tws-embed-frame iframe { display: block; max-width: 100%; } 1480 1481/* v2_15, rescoped in v2_17. A video embedded INSIDE a tws-frame, 1482 alongside copy - a tying demonstration under a fly dressing, say. 1483 WordPress oEmbeds a bare URL at a fixed 500x281, which sits small and 1484 hard left in a frame that is half as wide again. Pin it to the frame 1485 width at 16:9 instead. This is tws-frame only; tws-embed-frame above 1486 is for a frame that holds nothing but the embed, and the dual-video 1487 component sets its own. 1488 v2_17: this was written as a bare .tws-frame iframe, which caught 1489 EVERY iframe in a frame, not only videos. A form embed (Dotdigital) 1490 is a tall iframe that sets its own height, and height:auto with a 1491 16:9 ratio cropped it to a letterbox. Matched on video hosts and on 1492 the WordPress video embed wrapper instead, so a form, a map or a 1493 third party widget in a frame is left alone. */ 1494.tws-frame iframe[src*="youtube.com"], 1495.tws-frame iframe[src*="youtube-nocookie.com"], 1496.tws-frame iframe[src*="youtu.be"], 1497.tws-frame iframe[src*="vimeo.com"], 1498.tws-frame iframe[src*="dailymotion.com"], 1499.tws-frame iframe[src*="player.twitch.tv"], 1500.tws-frame .wp-block-embed.is-type-video iframe, 1501.tws-frame .inline-video-block-container iframe { 1502 width: 100% !important; 1503 height: auto !important; 1504 aspect-ratio: 16 / 9 !important; 1505 max-width: 100% !important; 1506 display: block; 1507} 1508 1509.tws-btn { display: inline-block; margin-top: 12px; padding: 10px 20px; background-color: rgb(var(--color-primary)); color: #ffffff; font-weight: bold; font-size: 0.9em; text-decoration: none; border-radius: 0px; transition: background-color 0.2s ease; } 1510.tws-btn:hover { background-color: rgb(var(--color-secondary)); color: #ffffff; } 1511 1512/* Button row - sits two or more .tws-btn side by side with even spacing, 1513 wraps neatly on narrow screens. Wrap the buttons in a div with class tws-btn-row */ 1514.tws-btn-row { display: flex; flex-wrap: wrap; gap: 15px; align-items: center; padding-top:10px;} 1515.tws-btn-row .tws-btn { margin-top: 0; } 1516 1517/* Product price and link box (buying guides / product reviews) */ 1518.tws-price-box { background-color: #f9f9f9; border-left: 4px solid rgb(var(--color-primary)); padding: 15px 20px; margin-top: 20px; } 1519.tws-price-box p { margin: 0; font-size: 1em; font-weight: normal; line-height: 1.5; } 1520.tws-price-box .tws-price-rrp { color: #333333; margin-bottom: 5px; } 1521.tws-price-box .tws-price-link { color: rgb(var(--color-primary)); font-weight: bold; text-decoration: none; } 1522.tws-price-box .tws-price-link:hover { color: rgb(var(--color-secondary)); text-decoration: none; } 1523 1524/* START - TWS Venue listing */ 1525 1526/* Listing wrapper */ 1527.tws-venue-listing { width: 100%; } 1528 1529/* Single entry - boxed, mirrors .tws-frame */ 1530.tws-venue-listing .tws-venue-entry { border: 1px solid rgb(var(--color-primary)); border-left: 10px solid rgb(var(--color-primary)); padding: 30px; margin: 20px 0 30px; } 1531 1532/* County / region label */ 1533.tws-venue-listing .tws-venue-county { display: block; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: rgb(var(--color-primary)); margin-bottom: 4px; } 1534 1535/* Venue name (H2) */ 1536.tws-venue-listing h2.tws-venue-name { font-size: 24px !important; line-height: 1.25 !important; font-weight: 700; margin: 0 0 12px !important; padding: 0 !important; } 1537 1538/* Body copy - inherits the site's default paragraph styling, 1539 only spacing is set here */ 1540.tws-venue-listing .tws-venue-entry p { margin: 0 0 12px; } 1541 1542/* Contact line (phone) */ 1543.tws-venue-listing .tws-venue-contact { margin-bottom: 14px; } 1544 1545/* Website button - mirrors .tws-btn */ 1546.tws-venue-listing .tws-venue-button { margin: 0; } 1547.tws-venue-listing .tws-venue-button-link { display: inline-block; padding: 10px 20px; background-color: rgb(var(--color-primary)); color: #ffffff; font-weight: bold; font-size: 0.9em; text-decoration: none; border-radius: 0px; transition: background-color 0.2s ease; } 1548.tws-venue-listing .tws-venue-button-link:hover { background-color: rgb(var(--color-secondary)); color: #ffffff; text-decoration: none; } 1549 1550/* Entry inner layout - text 65% / image 35% */ 1551.tws-venue-listing .tws-venue-inner { display: flex; flex-direction: row; gap: 24px; align-items: flex-start; } 1552.tws-venue-listing .tws-venue-content { flex: 0 0 65%; min-width: 0; } 1553.tws-venue-listing .tws-venue-image { flex: 0 0 calc(35% - 24px); } 1554.tws-venue-listing .tws-venue-image img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; object-position: center; } 1555 1556/* Mobile - image above text */ 1557@media (max-width:600px) { 1558 .tws-venue-listing h2.tws-venue-name { font-size: 22px !important; } 1559 .tws-venue-listing .tws-venue-entry { padding: 22px 22px 20px; margin-bottom: 18px; } 1560 .tws-venue-listing .tws-venue-inner { flex-direction: column; gap: 16px; } 1561 .tws-venue-listing .tws-venue-image { flex: none; width: 100%; } 1562 .tws-venue-listing .tws-venue-image img { aspect-ratio: 16 / 9; } 1563} 1564 1565/* END - TWS Venue listing */ 1566 1567 1568/* ============================================================
1569 tws-dual-video (v2_2) 1570 Two video embeds side by side, e.g. portrait YouTube Shorts. 1571 Add tws-dual-video to a tws-dual-figure wrapper whose two 1572 figure.wp-caption blocks each hold a bare YouTube URL, which 1573 WordPress oEmbeds. Needs a class because inline display:flex is 1574 stripped from post content on save. 1575 ============================================================ */ 1576 1577.tws-dual-figure.tws-dual-video { 1578 gap: 16px; 1579 max-width: 760px; 1580 margin-left: auto; 1581 margin-right: auto; 1582 justify-content: center; 1583 align-items: flex-start; 1584} 1585 1586.tws-dual-figure.tws-dual-video figure.wp-caption { 1587 max-width: 340px !important; 1588 text-align: center; 1589} 1590 1591/* label sits above its video */ 1592.tws-dual-figure.tws-dual-video figure.wp-caption p { margin: 0 0 8px 0 !important; } 1593 1594/* fill each column at a portrait (9:16) ratio, which suits Shorts */ 1595.tws-dual-figure.tws-dual-video figure.wp-caption iframe { 1596 width: 100% !important; 1597 height: auto !important; 1598 aspect-ratio: 9 / 16 !important; 1599 max-width: 100% !important; 1600 display: block; 1601} 1602 1603/* keep the two shorts side by side on mobile too, just smaller */ 1604@media (max-width: 767px) { 1605 .tws-dual-figure.tws-dual-video { flex-direction: row !important; gap: 10px; } 1606 .tws-dual-figure.tws-dual-video figure.wp-caption { max-width: 50% !important; margin: 0 !important; } 1607} 1608 1609/* END - TWS dual video */ 1610 1611 1612/* ============================================================ 1613 tws-product-grid (v2_4) 1614 Card grid for kit-bag, gift and best-of roundups. Each card is 1615 a square product image on white, the name, a price and retailer 1616 link, and a short description. Add -2 (default look), -3 or -4 1617 for the desktop column count; all collapse to one column on 1618 mobile. Class-based because inline grid/flex is stripped on save. 1619 ============================================================ */ 1620 1621.tws-product-grid { 1622 display: grid; 1623 grid-template-columns: repeat(2, minmax(0, 1fr)); 1624 gap: 24px; 1625 margin: 32px 0; 1626} 1627.tws-product-grid.tws-product-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } 1628.tws-product-grid.tws-product-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } 1629 1630/* v2_20 â a card never forces its column wider than its share of the grid. 1631 The in-article promo boxes are inserted after the Nth paragraph and count the 1632 paragraphs inside the tws- boxes, so they can land inside a card, frame or panel. 1633 The tws-promo-placement mu-plugin moves each one to sit between the boxes: in a 1634 product grid it becomes a full-width row after the row it landed in. Until it 1635 is moved (or if the plugin is missing) a promo inside a box stays hidden, so the 1636 page never shows it squashed or pushes the grid under the sidebar. */ 1637.tws-product-card { min-width: 0; } 1638.tws-product-grid > .tws-bss, 1639.tws-product-grid > .tws-promo, 1640.tws-product-grid > .tws-nlad, 1641.tws-product-grid > .tws-promo-band { grid-column: 1 / -1; margin: 0 !important; } 1642.tws-product-card .tws-bss, .tws-product-card .tws-promo, .tws-product-card .tws-nlad, 1643.tws-frame .tws-bss, .tws-frame .tws-promo, .tws-frame .tws-nlad, 1644.tws-panel .tws-bss, .tws-panel .tws-promo, .tws-panel .tws-nlad, 1645.tws-faq-section .tws-bss, .tws-faq-section .tws-promo, .tws-faq-section .tws-nlad, 1646.related-articles .tws-bss, .related-articles .tws-promo, .related-articles .tws-nlad { display: none !important; } 1647 1648.tws-product-card { 1649 display: flex; 1650 flex-direction: column; 1651 border: 1px solid #dddddd;
1652 border-top: 4px solid rgb(var(--color-primary)); 1653 background: #ffffff; 1654} 1655 1656/* Square image area, product sits on white with a little breathing room */ 1657.tws-product-image { 1658 width: 100%; 1659 aspect-ratio: 1 / 1; 1660 display: flex; 1661 align-items: center; 1662 justify-content: center; 1663 background: #ffffff; 1664 padding: 18px; 1665 box-sizing: border-box; 1666 border-bottom: 1px solid #eeeeee; 1667} 1668.tws-product-image img { 1669 width: 100%; 1670 height: 100%; 1671 object-fit: contain; 1672 display: block; 1673 margin: 0 !important; 1674 max-height: 100% !important; 1675} 1676 1677.tws-product-body { 1678 padding: 18px 20px 22px; 1679 display: flex; 1680 flex-direction: column; 1681 flex: 1; 1682} 1683.tws-product-title { 1684 font-size: 19px; 1685 font-weight: 700 !important; 1686 color: rgb(var(--color-primary)); 1687 margin: 0 0 6px !important; 1688 line-height: 1.3; 1689} 1690.tws-product-meta { 1691 font-size: 14px; 1692 margin: 0 0 12px !important; 1693 line-height: 1.45; 1694} 1695.tws-product-price { font-weight: 700; color: #1a1a1a; } 1696.tws-product-link { 1697 color: rgb(var(--color-primary)); 1698 font-weight: 700; 1699 text-decoration: none; 1700} 1701.tws-product-link:hover { color: rgb(var(--color-secondary)); text-decoration: underline; } 1702.tws-product-desc { 1703 font-size: 16px; 1704 color: #333333; 1705 line-height: 1.6; 1706 margin: 0 !important; 1707} 1708 1709/* One column on mobile, whatever the desktop column count */ 1710@media (max-width: 767px) { 1711 .tws-product-grid, 1712 .tws-product-grid.tws-product-grid-3, 1713 .tws-product-grid.tws-product-grid-4 { 1714 grid-template-columns: 1fr; 1715 gap: 20px; 1716 } 1717} 1718/* END - tws-product-grid */ 1719
1720/* START - TWS full-width call-to-action (cover image + text + button) */ 1721/* Full-width promo: cover image one side, heading, copy and button the other. 1722 The image is shown whole, never cropped, and the panel fills any space around it. 1723 Brand primary = button, secondary = panel. Class-based, inline styles stripped. */ 1724.tws-cta { display: flex; flex-direction: row; align-items: stretch; width: 100%; margin: 0 0 34px; background: rgb(var(--color-secondary)); } 1725.tws-cta .tws-cta-media { flex: 0 0 50%; display: flex; align-items: center; justify-content: center; padding: 26px; box-sizing: border-box; } 1726.tws-cta .tws-cta-media img { display: block; width: auto; height: auto; max-width: 100%; max-height: 460px; } 1727.tws-cta .tws-cta-body { flex: 0 0 50%; display: flex; flex-direction: column; justify-content: center; padding: 40px 46px; box-sizing: border-box; color: #ffffff; } 1728.tws-cta .tws-cta-heading { font-family: 'Georgia', 'Times New Roman', serif; font-size: 30px; line-height: 1.15; font-weight: 700; margin: 0 0 18px; color: #ffffff; } 1729.tws-cta .tws-cta-body p { margin: 0 0 16px; color: #ffffff; } 1730.tws-cta .tws-cta-btn { align-self: flex-start; display: inline-block; margin-top: 10px; padding: 14px 34px; background: rgb(var(--color-primary)); color: #ffffff; font-weight: bold; font-size: 0.95em; letter-spacing: 0.05em; text-transform: uppercase; text-decoration: none; transition: background 0.2s ease; } 1731.tws-cta .tws-cta-btn:hover { background: #ffffff; color: rgb(var(--color-primary)); text-decoration: none; } 1732 1733@media (max-width: 767px) { 1734 .tws-cta { flex-direction: column; } 1735 .tws-cta .tws-cta-media, .tws-cta .tws-cta-body { flex: none; width: 100%; } 1736 .tws-cta .tws-cta-media { padding: 22px 22px 0; } 1737 .tws-cta .tws-cta-media img { max-height: none; } 1738 .tws-cta .tws-cta-body { padding: 26px 24px 30px; } 1739 .tws-cta .tws-cta-heading { font-size: 25px; } 1740} 1741/* END - TWS full-width call-to-action */ 1742 1743 1744/* ============================================================ 1745 tws-panel (v2_6) 1746 Tinted feature panel with a solid header bar, for a magazine 1747 "viewpoint" or sidebar box. Bar = brand PRIMARY with white text, 1748 body = a soft tint of that same primary. 1749 Markup: div.tws-panel holding p.tws-panel-name (the reversed-out 1750 name band) then div.tws-panel-body, which opens with an 1751 h3.tws-panel-title and an optional p.tws-panel-standfirst. 1752 Class-based, inline styles stripped from post content on save. 1753 ============================================================ */ 1754/* Inner text rules carry an #app prefix to out-rank the theme's own 1755 "#app h3 { font-family: 'Open Sans' !important }": that selector has an ID, so a 1756 classes-only rule loses even with !important. #app wraps content on every brand. */ 1757.tws-panel { background: rgba(var(--color-primary), 0.08); margin: 40px 0; } 1758#app .tws-panel .tws-panel-name { background: rgb(var(--color-primary)); color: #ffffff !important; margin: 0 !important; padding: 9px 26px !important; font-family: 'Open Sans', Arial, Helvetica, sans-serif !important; font-size: 14px !important; font-weight: 700 !important; letter-spacing: 0.05em; text-transform: uppercase; line-height: 1.3 !important; } 1759.tws-panel-body { padding: 22px 26px 24px; } 1760#app .tws-panel .tws-panel-title { margin: 0 0 6px !important; padding: 0 !important; font-family: 'Georgia', 'Times New Roman', serif !important; font-size: 26px !important; font-weight: 600 !important; line-height: 1.2 !important; color: rgb(var(--color-primary)); } 1761#app .tws-panel .tws-panel-standfirst { margin: 0 0 16px !important; font-size: 1.1em !important; font-weight: 600 !important; line-height: 1.4; } 1762.tws-panel-body > *:last-child { margin-bottom: 0 !important; } 1763 1764@media (max-width: 600px) { 1765 #app .tws-panel .tws-panel-name { font-size: 13px !important; padding: 8px 20px !important; } 1766 #app .tws-panel .tws-panel-title { font-size: 21px !important; } 1767 .tws-panel-body { padding: 18px 20px 20px; } 1768} 1769/* END - tws-panel */ 1770 1771 1772/* ============================================================ 1773 tws-panel-media (v2_16) 1774 A cut-out product picture on a tws-panel. The picture sits to 1775 the right of the copy and breaks out above and below the box, 1776 so a prize or product promo reads like a magazine page rather 1777 than a plain aside. A modifier on .tws-panel, so every existing 1778 panel is untouched. 1779 Markup: the usual .tws-panel > p.tws-panel-name + div.tws-panel-body, 1780 with a div.tws-panel-image holding ONE transparent PNG added 1781 after the body. Class-based, because inline styles are stripped 1782 from post content on save. 1783 The picture box is pinned top and bottom with a fixed overhang 1784 and takes its width from aspect-ratio, so the break-out is the 1785 same depth whatever the copy does. max-width stops a tall panel 1786 pushing the picture into the text; where that cap bites, the 1787 picture simply sits inside the box instead, which is what 1788 happens between 768px and about 900px. 1789 ============================================================ */ 1790.tws-panel.tws-panel-media { position: relative; margin: 80px 0; } 1791.tws-panel-media .tws-panel-body { padding-right: 46%; } 1792.tws-panel-media .tws-panel-image { position: absolute; right: 14px; top: -46px; bottom: -46px; aspect-ratio: 1000 / 1117; max-width: 44%; pointer-events: none; } 1793.tws-panel-media .tws-panel-image img { display: block; width: 100%; height: 100%; margin: 0; object-fit: contain; object-position: center; } 1794 1795/* Tablet: a narrower picture so the copy keeps a workable measure. */ 1796@media (max-width: 1024px) { 1797 .tws-panel.tws-panel-media { margin: 56px 0; } 1798 .tws-panel-media .tws-panel-body { padding-right: 42%; } 1799 .tws-panel-media .tws-panel-image { right: 10px; top: -30px; bottom: -30px; max-width: 40%; } 1800} 1801 1802/* Mobile: side by side stops working, so the picture drops under 1803 the copy and breaks out of the foot of the box only. */ 1804@media (max-width: 767px) { 1805 .tws-panel.tws-panel-media { margin: 40px 0 66px; }
1806 .tws-panel-media .tws-panel-body { padding-right: 26px; padding-bottom: 10px; } 1807 .tws-panel-media .tws-panel-image { position: relative; right: auto; top: auto; bottom: -30px; aspect-ratio: auto; max-width: none; height: 215px; margin: 0 20px; } 1808 .tws-panel-media .tws-panel-image img { object-position: center bottom; } 1809} 1810/* END - tws-panel-media */ 1811 1812 1813/* ============================================================ 1814 tws-strand-break (v2_8) 1815 A thematic break between the self-contained strands of a 1816 round-up article, where unrelated short stories share one page 1817 (the weekly Shooting Times Junior package). Not the automatic 1818 dividers above the recipe method, FAQ and related articles - 1819 those components draw their own. 1820 It must declare its own border: the theme's Tailwind reset puts 1821 "border: 0 solid" on every element, so an unstyled hr is 1822 invisible, and it zeroes the hr margin too. 1823 Markup: hr.tws-strand-break on its own line above the strand h2. 1824 ============================================================ */ 1825.tws-strand-break { border: 0; border-top: 1px solid #dddddd; height: 0; margin: 44px 0 36px !important; } 1826 1827@media (max-width: 768px) { 1828 .tws-strand-break { margin: 32px 0 26px !important; } 1829} 1830/* END - tws-strand-break */ 1831 1832 1833/* ============================================================ 1834 HIGHLIGHTS TILES - flat tint removed, gradient at the bottom only 1835 Added 4 August 2026. Block: blocks/five-post-cards. 1836 The block hard-codes a 50 per cent black layer over the whole 1837 photo inside the inline background shorthand, alongside the 1838 per-card image URL, so no stylesheet can replace one without 1839 losing the other. Blending that layer with "lighten" cancels it 1840 exactly: black lightened against the photo is the photo. The 1841 second value, normal, stops the photo blending with the 1842 lightgray background colour, which would lift every dark area. 1843 background-blend-mode is not part of the background shorthand, 1844 so the inline style does not reset it and no template change is 1845 needed. 1846 ============================================================ */ 1847.five-post-cards .card-link div[style*="linear-gradient"] { background-blend-mode: lighten, normal; } 1848 1849/* Animated GIF cards take a different branch and get a separate black overlay */ 1850.five-post-cards .card-link .absolute.inset-0.bg-black { display: none; } 1851 1852/* Tint restored as a bottom-up gradient on the caption layer. The heading is a 1853 child of that layer, so it paints above its own background with no z-index. */ 1854.five-post-cards .card-link .absolute.items-end { 1855 background-image: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.60) 18%, rgba(0,0,0,0.25) 38%, rgba(0,0,0,0) 60%); 1856} 1857 1858/* Safety net for a caption landing on a bright patch */ 1859.five-post-cards .card-link h3 { text-shadow: 0 1px 3px rgba(0,0,0,0.6); } 1860 1861/* Dial to taste: darker behind the text, raise 0.85 towards 0.95. Gradient 1862 reaches higher up the tile, raise the 60% stop. Hugs the base more, drop it. */ 1863/* END - Highlights tiles */ 1864 1865 1866/* ============================================================ 1867 tws-product-grid-1 (v2_9) 1868 One card per row, laid out horizontally on desktop so a section 1869 carrying a single product fills the content width instead of 1870 leaving an empty second column. Square image left at 50 per 1871 cent, copy beside it. Stacks to the normal vertical card on 1872 mobile. 1873 ============================================================ */ 1874 1875.tws-product-grid.tws-product-grid-1 { grid-template-columns: 1fr; } 1876 1877.tws-product-grid.tws-product-grid-1 .tws-product-card { flex-direction: row; align-items: stretch; } 1878 1879.tws-product-grid.tws-product-grid-1 .tws-product-image { 1880 width: 50%; 1881 max-width: none; 1882 flex: 0 0 auto; 1883 border-bottom: 0; 1884 border-right: 1px solid #eeeeee; 1885} 1886 1887.tws-product-grid.tws-product-grid-1 .tws-product-body { flex: 1 1 auto; justify-content: center; } 1888 1889@media (max-width: 767px) { 1890 .tws-product-grid.tws-product-grid-1 { grid-template-columns: 1fr; } 1891 .tws-product-grid.tws-product-grid-1 .tws-product-card { flex-direction: column; } 1892 .tws-product-grid.tws-product-grid-1 .tws-product-image { 1893 width: 100%; 1894 max-width: none; 1895 border-right: 0; 1896 border-bottom: 1px solid #eeeeee; 1897 } 1898} 1899/* END - tws-product-grid-1 */ 1900 1901 1902/* ============================================================ 1903 Boxed roundup refinements (v2_10, v2_11) 1904 A product grid last inside a tws-frame stacked its own bottom 1905 margin on the frame's bottom padding, leaving a deeper gap below 1906 the cards than at the sides; that margin is removed. 1907 1908 tws-frame-number is an opt-in span for the leading label on a 1909 numbered roundup heading, the "No. 1" in "No. 1 - Shotgun: ...". 1910 Set large, in the brand's secondary serif and primary colour. 1911 Nothing changes unless the class is added by hand. The #app 1912 prefix and !important are needed to beat the theme's own 1913 "#app h2 font-family Open Sans important" rule, the same problem
1914 tws-panel-title has. 1915 ============================================================ */ 1916 1917.tws-frame .tws-product-grid:last-child { margin-bottom: 0; } 1918 1919#app .tws-frame h2 .tws-frame-number, 1920.tws-frame h2 .tws-frame-number { 1921 font-family: 'EB Garamond', 'Georgia', 'Times New Roman', serif !important; 1922 font-size: 2.1em; 1923 font-weight: 700 !important; 1924 display: inline-block; 1925 line-height: 0.72; 1926 color: rgb(var(--color-primary)); 1927 vertical-align: -0.04em; 1928 margin-right: 4px; 1929 white-space: nowrap; 1930} 1931/* END - Boxed roundup refinements */ 1932 </style> 1933 <style id="tws-mobile-panel-styles"> 1934#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation { 1935 --tws-mp-accent: rgb(var(--color-primary)); 1936 --tws-mp-accent: #906C3F;} 1937 1938/* The panel additions are mobile only. Injected into the mobile wrap alone, 1939 but hidden above the breakpoint as well in case a future template renders 1940 the mobile toggle at a wider width. */ 1941@media only screen and (min-width: 1024px) { 1942 li.tws-mp-item { display: none !important; } 1943} 1944 1945@media only screen and (max-width: 1023px) { 1946 1947 /* The empty row. 1948 app.css hides the link with visibility:hidden, which leaves the row in 1949 the layout at its full height plus its bottom border. This removes the 1950 list item instead. The item is already mega-hide-on-desktop, so nothing 1951 is lost above the breakpoint either. */ 1952 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-social-media-links, 1953 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.social-media-links { 1954 display: none !important; 1955 } 1956 1957 /* Mega Menu pads the panel list 60px 25px. The 25px sides are what every 1958 row lines up against and are left alone. The 60px top was clearance for 1959 Mega Menu's own close button, which is no longer used, so it comes down 1960 and the whole panel starts higher. 1961 1962 Scoped to .tws-mp-built, added by the script once the rows are actually 1963 in place. If the script has not run, Mega Menu's close button is still 1964 the one on screen and it keeps the room it needs. */ 1965 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation.tws-mp-built { 1966 padding-top: 16px !important; 1967 } 1968 1969 /* Mega Menu's close button, retired in favour of ours. Adjacent sibling of 1970 the list, which is how Mega Menu's own stylesheet addresses it too. */ 1971 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation.tws-mp-built + button.mega-close { 1972 display: none !important; 1973 } 1974 1975 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation .tws-mp-close { 1976 /* Right edge lands on the right edge of the rows below, whatever the 1977 panel width, because the row it sits in shares their box. */ 1978 display: block; 1979 margin: 0 0 6px auto; 1980 padding: 0; 1981 width: 30px; 1982 height: 30px; 1983 border: 0; 1984 background: none; 1985 color: #fff; 1986 cursor: pointer; 1987 line-height: 0; 1988 } 1989 1990 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation .tws-mp-close svg { 1991 display: block; 1992 width: 100%; 1993 height: 100%; 1994 } 1995 1996 /* Sub menu links. 1997 Mega Menu's own generated CSS colours these #666, which is its flyout 1998 setting and reads fine on the desktop panel. On the black mobile panel it 1999 is too dim against the white top-level items. Matched with !important 2000 rather than by out-specifying a two-id, four-class selector, and scoped 2001 to this breakpoint so the desktop flyouts keep Mega Menu's own colour. */ 2002 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation ul.mega-sub-menu li.mega-menu-item > a.mega-menu-link { 2003 color: #fff !important; 2004 } 2005 2006 /* The header's own search button sits above the open panel, so its 2007 magnifier shows through over the menu. Hidden while the panel is open. 2008 The class is put on by script, which can tell this button apart from the 2009 burger and the close button; a selector cannot do that reliably here, 2010 because header.blade.php gives it only a responsive utility class. 2011 visibility rather than display, so nothing in the header reflows. */ 2012 html.tws-mp-open .tws-mp-header-search { 2013 visibility: hidden !important; 2014 pointer-events: none !important; 2015 } 2016 2017 /* The header's search icon ships at 18px against a burger that renders 2018 32 x 19, which left it looking undersized next to it. */ 2019 #header .tws-mp-header-search svg { 2020 width: 24px !important; 2021 height: 24px !important; 2022 } 2023 2024 /* An explicit colour for both mobile header icons, so the burger and the 2025 search icon always match rather than one being chased to the other. 2026 Set per site; blank on a site with a dark header, where the icons are 2027 white already and the runtime match below is the right behaviour. */ 2028 #header .mega-menu-mobile-toggle .mega-toggle-animated-inner, 2029 #header .mega-menu-mobile-toggle .mega-toggle-animated-inner::before, 2030 #header .mega-menu-mobile-toggle .mega-toggle-animated-inner::after { 2031 background-color: #b6b6b6 !important; 2032 } 2033 2034 #header .tws-mp-header-search svg [stroke]:not([stroke="none"]) { 2035 stroke: #b6b6b6 !important; 2036 } 2037 2038 #header .tws-mp-header-search svg [fill]:not([fill="none"]) { 2039 fill: #b6b6b6 !important; 2040 } 2041 2042 /* The header's own search icon carries #ffffff on the SVG's own 2043 attributes. That is right on Shooting UK, whose header is #231F20, and 2044 invisible on the six with a white header - the icon is not faint there, 2045 it is simply not drawn. 2046 2047 Recoloured to match that site's burger. The burger colour is a per-site 2048 Max Mega Menu theme setting and is not the same everywhere: five sites 2049 use #ddd and Trout & Salmon uses black, so it is read at runtime rather 2050 than written down. The script only adds this class where the header is 2051 light, so Shooting UK keeps its white icon. 2052 2053 Only attributes that already carry a colour are touched, so the circle 2054 keeps fill="none" and does not fill in. */ 2055 #header.tws-mp-match-search .tws-mp-header-search svg [stroke]:not([stroke="none"]) { 2056 stroke: var(--tws-mp-burger) !important; 2057 } 2058 2059 #header.tws-mp-match-search .tws-mp-header-search svg [fill]:not([fill="none"]) { 2060 fill: var(--tws-mp-burger) !important; 2061 } 2062 2063 /* Logo, when one is uploaded. Height driven, so any sensible file fits the 2064 row without being asked for at an exact size. 2065 Imagify is set to rewrap images in <picture> and moves the class up onto 2066 the wrapper, leaving the img bare, so both are sized here. Without this 2067 the logo would look right until the day a WebP version was generated. */ 2068 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation .tws-mp-logo, 2069 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation picture:has(> .tws-mp-logo) { 2070 display: block !important; 2071 height: 44px !important; 2072 width: auto !important; 2073 max-width: 220px !important; 2074 margin: 0 auto !important; 2075 object-fit: contain !important; 2076 } 2077 2078 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation picture:has(> .tws-mp-logo) > img, 2079 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation picture.tws-mp-logo > img { 2080 height: 100% !important; 2081 width: auto !important; 2082 max-width: 100% !important; 2083 object-fit: contain !important; 2084 } 2085 2086 /* Our own rows carry none of Mega Menu's item chrome. 2087 Deliberately no padding, margin or border shorthand here: the three row 2088 rules below set their own, and a shorthand at this specificity would 2089 overrule them. */ 2090 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.tws-mp-item { 2091 display: block !important; 2092 width: 100% !important; 2093 border: 0 none !important; 2094 background: none !important; 2095 list-style: none !important; 2096 } 2097 2098 #mega-menu-primary_navigation .tws-mp-item .screen-reader-text { 2099 position: absolute; width: 1px; height: 1px; overflow: hidden; 2100 clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; 2101 } 2102 2103 /* Title.
2104 Carries the same two-id prefix as the reset above. Without it the reset 2105 wins on specificity even though both are !important, and the padding 2106 silently never lands. */ 2107 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.tws-mp-item-head { 2108 /* Right inset clears Mega Menu's close button, which sits over the 2109 top right corner of the panel rather than in the flow. */ 2110 margin: 0 !important; 2111 /* No horizontal padding, so the title and any logo centre on the panel 2112 rather than sitting off to the left. No top padding either: the close 2113 button is the first thing in this row and the list's own 16px is the 2114 only gap wanted above it. 2115 2116 The 22px underneath is the gap between the logo and the search box. 2117 The search row adds 2px of its own, so the visible gap is 24px. */ 2118 padding: 0 0 22px !important; 2119 text-align: center; 2120 } 2121 2122 #mega-menu-primary_navigation .tws-mp-wordmark { 2123 display: block; 2124 color: #fff; 2125 font-size: 15px; 2126 font-weight: 800; 2127 line-height: 1.2; 2128 letter-spacing: .02em; 2129 text-transform: uppercase; 2130 } 2131 2132 /* A strapline is a quieter second line. Anything that is part of the 2133 magazine's name belongs in the title above, at the same size. */ 2134 #mega-menu-primary_navigation .tws-mp-strapline { 2135 display: block; 2136 margin-top: 4px; 2137 color: rgba(255, 255, 255, .62); 2138 font-size: 9.5px; 2139 font-weight: 400; 2140 letter-spacing: .15em; 2141 text-transform: uppercase; 2142 } 2143 2144 /* Search. 2145 Sticky so it stays reachable once the menu is scrolled. If the panel 2146 turns out to scroll the page rather than itself, this degrades to a 2147 normal block at the top, which is still an improvement on no search. */ 2148 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.tws-mp-item-search { 2149 margin: 0 !important; 2150 position: sticky !important; 2151 top: 0; 2152 z-index: 5; 2153 background: inherit !important; 2154 /* No horizontal padding. This row is a sibling of the menu rows, so 2155 zero here makes the search box exactly as wide as the rows above it 2156 and their dividing lines, whatever inset Mega Menu is applying to 2157 the list itself. */ 2158 padding: 2px 0 16px !important; 2159 } 2160 2161 #mega-menu-primary_navigation .tws-mp-search { 2162 display: flex; 2163 align-items: center; 2164 gap: 9px; 2165 margin: 0; 2166 padding: 9px 12px; 2167 border-radius: 4px; 2168 background: #fff; 2169 } 2170 2171 #mega-menu-primary_navigation .tws-mp-mag { 2172 flex: 0 0 auto; 2173 width: 17px; 2174 height: 17px; 2175 color: #555; 2176 } 2177 2178 #mega-menu-primary_navigation .tws-mp-search input[type="search"] { 2179 flex: 1 1 auto; 2180 min-width: 0; 2181 margin: 0; 2182 padding: 0; 2183 border: 0; 2184 background: none; 2185 box-shadow: none; 2186 color: #111; 2187 font-size: 15px; 2188 font-family: inherit; 2189 -webkit-appearance: none; 2190 appearance: none; 2191 } 2192 2193 #mega-menu-primary_navigation .tws-mp-search input[type="search"]:focus { 2194 outline: none; 2195 } 2196 2197 #mega-menu-primary_navigation .tws-mp-go { 2198 flex: 0 0 auto; 2199 padding: 6px 11px; 2200 border: 0; 2201 border-radius: 3px; 2202 background: var(--tws-mp-accent); 2203 color: #fff; 2204 font-size: 12px; 2205 font-weight: 700; 2206 letter-spacing: .03em; 2207 cursor: pointer; 2208 } 2209 2210 /* Footer */ 2211 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.tws-mp-item-foot { 2212 /* Mega Menu puts margin: 0 10px 0 0 on every item, which would indent 2213 this row against the ones above it. Stated in full rather than as 2214 margin-top alone. */ 2215 margin: 26px 0 0 !important; 2216 /* Zero horizontal padding for the same reason as the search row: the 2217 subscribe button lines up with the menu rows above it. */ 2218 padding: 22px 0 30px !important; 2219 /* No rule across the top. The last menu item already draws a full width 2220 line, so a second, fainter one directly under it read as an artefact 2221 rather than as a divider. The 26px margin above does the separating. */ 2222 } 2223 2224 #mega-menu-primary_navigation .tws-mp-subscribe { 2225 display: block; 2226 padding: 14px 12px; 2227 border-radius: 3px; 2228 background: var(--tws-mp-accent); 2229 color: #fff !important; 2230 font-size: 15px; 2231 font-weight: 700; 2232 letter-spacing: .015em; 2233 line-height: 1.3; 2234 text-align: center; 2235 text-decoration: none; 2236 } 2237 2238 #mega-menu-primary_navigation .tws-mp-subscribe small { 2239 display: block; 2240 margin-top: 3px; 2241 opacity: .9; 2242 font-size: 11.5px; 2243 font-weight: 400; 2244 letter-spacing: .05em; 2245 text-transform: uppercase; 2246 } 2247 2248 #mega-menu-primary_navigation .tws-mp-follow { 2249 margin: 26px 0 14px; 2250 color: rgba(255, 255, 255, .56); 2251 font-size: 10.5px; 2252 letter-spacing: .14em; 2253 text-transform: uppercase; 2254 } 2255 2256 #mega-menu-primary_navigation .tws-mp-socials { 2257 display: flex; 2258 align-items: center; 2259 /* The "Follow us" label above is centred by the panel's own 2260 text-align, which a flex container ignores, so the row of icons has 2261 to be centred on its own axis. */ 2262 justify-content: center; 2263 gap: 26px; 2264 } 2265 2266 /* Plain marks on the black, no circles. The 44px tap target is kept by 2267 padding, so the icon can stay 25px without being hard to hit. */ 2268 #mega-menu-primary_navigation a.tws-mp-social { 2269 display: flex; 2270 align-items: center; 2271 justify-content: center; 2272 width: 25px; 2273 height: 25px; 2274 margin: -9px -9px; 2275 padding: 9px; 2276 border: 0 !important; 2277 box-sizing: content-box; 2278 line-height: 0; 2279 } 2280 2281 #mega-menu-primary_navigation a.tws-mp-social svg { 2282 width: 25px; 2283 height: 25px; 2284 fill: #fff; 2285 display: block; 2286 } 2287} 2288</style> 2289 <style id="tws-card-line-clamp"> 2290#app .latest-posts-block li > div > a > h3, 2291#app .latest-posts-block li > div > a > p { 2292 display: -webkit-box; 2293 -webkit-box-orient: vertical; 2294 -webkit-line-clamp: 3; 2295 overflow: hidden; 2296} 2297#app .latest-posts-block li > div > a > h3 { 2298 line-height: 1.2; 2299} 2300#app .latest-posts-block li > div > a > p { 2301 padding-top: 0; 2302 padding-bottom: 0; 2303 margin: 6px 0; 2304} 2305@media (max-width: 1023px) { 2306 #app .hero-banner-wrapper #hero-banner .carousel-overlay .container >
2306 h2 + p { 2307 display: -webkit-box; 2308 -webkit-box-orient: vertical; 2309 -webkit-line-clamp: 3; 2310 overflow: hidden; 2311 line-height: 1.2em !important; 2312 max-height: 3.6em !important; 2313 padding-bottom: 0 !important; 2314 margin-bottom: 30px; 2315 } 2316} 2317#app .latest-posts-block.tws-lc-measure li > div > a > h3, 2318#app .latest-posts-block.tws-lc-measure li > div > a > p { 2319 display: block !important; 2320 -webkit-line-clamp: none !important; 2321 overflow: visible !important; 2322 max-height: none !important; 2323} 2324</style> 2325 <style type="text/css">@charset "UTF-8";/** THIS FILE IS AUTOMATICALLY GENERATED - DO NOT MAKE MANUAL EDITS! **//** Custom CSS should be added to Mega Menu > Menu Themes > Custom Styling **/.mega-menu-last-modified-1790767034 {content: "Wednesday 30th September 2026 11:17:14 UTC";}#mega-menu-wrap-primary_navigation, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-row, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-column, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation a.mega-menu-link, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation span.mega-menu-badge, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation + button.mega-close {transition: none;border-radius: 0;box-shadow: none;background: none;border: 0;bottom: auto;box-sizing: border-box;clip: auto;color: black;display: block;float: none;font-family: inherit;font-size: 14px;height: auto;left: auto;line-height: 1.7;list-style-type: none;margin: 0;min-height: auto;max-height: none;min-width: auto;max-width: none;opacity: 1;outline: none;overflow: visible;padding: 0;position: relative;pointer-events: auto;right: auto;text-align: left;text-decoration: none;text-indent: 0;text-transform: none;transform: none;top: auto;vertical-align: baseline;visibility: inherit;width: auto;word-wrap: break-word;white-space: normal;}#mega-menu-wrap-primary_navigation:before, #mega-menu-wrap-primary_navigation:after, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation:before, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation:after, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation ul.mega-sub-menu:before, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation ul.mega-sub-menu:after, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item:before, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item:after, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-row:before, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-row:after, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-column:before, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-column:after, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation a.mega-menu-link:before, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation a.mega-menu-link:after, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation span.mega-menu-badge:before, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation span.mega-menu-badge:after, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation + button.mega-close:before, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation + button.mega-close:after {display: none;}#mega-menu-wrap-primary_navigation {border-radius: 0;}@media only screen and (min-width: 1024px) {#mega-menu-wrap-primary_navigation {background: rgba(255, 255, 255, 0);}}#mega-menu-wrap-primary_navigation.mega-keyboard-navigation .mega-menu-toggle:focus, #mega-menu-wrap-primary_navigation.mega-keyboard-navigation .mega-toggle-block:focus, #mega-menu-wrap-primary_navigation.mega-keyboard-navigation .mega-toggle-block a:focus, #mega-menu-wrap-primary_navigation.mega-keyboard-navigation .mega-toggle-block .mega-search input[type=text]:focus, #mega-menu-wrap-primary_navigation.mega-keyboard-navigation .mega-toggle-block button.mega-toggle-animated:focus, #mega-menu-wrap-primary_navigation.mega-keyboard-navigation #mega-menu-primary_navigation a:focus, #mega-menu-wrap-primary_navigation.mega-keyboard-navigation #mega-menu-primary_navigation span:focus, #mega-menu-wrap-primary_navigation.mega-keyboard-navigation #mega-menu-primary_navigation input:focus, #mega-menu-wrap-primary_navigation.mega-keyboard-navigation #mega-menu-primary_navigation li.mega-menu-item a.mega-menu-link:focus, #mega-menu-wrap-primary_navigation.mega-keyboard-navigation #mega-menu-primary_navigation form.mega-search-open:has(input[type=text]:focus), #mega-menu-wrap-primary_navigation.mega-keyboard-navigation #mega-menu-primary_navigation + button.mega-close:focus {outline-style: solid;outline-width: 3px;outline-color: #109cde;outline-offset: -3px;}#mega-menu-wrap-primary_navigation.mega-keyboard-navigation .mega-toggle-block button.mega-toggle-animated:focus {outline-offset: 2px;}#mega-menu-wrap-primary_navigation.mega-keyboard-navigation > li.mega-menu-item > a.mega-menu-link:focus {background: rgba(255, 255, 255, 0);color: black;font-weight: bold;text-decoration: none;border-color: #fff;}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation.mega-keyboard-navigation > li.mega-menu-item > a.mega-menu-link:focus {color: #ffffff;background: #b38750;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation {text-align: center;padding: 0px 0px 5px 0px;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation a.mega-menu-link {cursor: pointer;display: inline;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation a.mega-menu-link .mega-description-group {vertical-align: middle;display: inline-block;transition: none;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation a.mega-menu-link .mega-description-group .mega-menu-title, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation a.mega-menu-link .mega-description-group .mega-menu-description {transition: none;line-height: 1.5;display: block;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation a.mega-menu-link .mega-description-group .mega-menu-description {font-style: italic;font-size: 0.8em;text-transform: none;font-weight: normal;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu li.mega-menu-item.mega-icon-left.mega-has-description.mega-has-icon > a.mega-menu-link {display: flex;align-items: center;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu li.mega-menu-item.mega-icon-left.mega-has-description.mega-has-icon > a.mega-menu-link:before {flex: 0 0 auto;align-self: flex-start;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-tabbed.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item.mega-icon-left.mega-has-description.mega-has-icon > a.mega-menu-link {display: block;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-icon-top > a.mega-menu-link {display: table-cell;vertical-align: middle;line-height: initial;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-icon-top > a.mega-menu-link:before {display: block;margin: 0 0 6px 0;text-align: center;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-icon-top > a.mega-menu-link > span.mega-title-below {display: inline-block;transition: none;}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-icon-top > a.mega-menu-link {display: block;line-height: 40px;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-icon-top > a.mega-menu-link:before {display: inline-block;margin: 0 6px 0 0;text-align: left;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-icon-right > a.mega-menu-link:before {float: right;margin: 0 0 0 6px;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-animating > ul.mega-sub-menu {pointer-events: none;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-disable-link > a.mega-menu-link, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu li.mega-disable-link > a.mega-menu-link {cursor: inherit;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item-has-children.mega-disable-link > a.mega-menu-link, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > li.mega-menu-item-has-children.mega-disable-link > a.mega-menu-link {cursor: pointer;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation p {margin-bottom: 10px;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation input, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation img {max-width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item > ul.mega-sub-menu {display: block;visibility: hidden;opacity: 1;pointer-events: auto;}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item > ul.mega-sub-menu {display: none;visibility: visible;opacity: 1;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu.mega-menu-item.mega-toggle-on ul.mega-sub-menu {display: block;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu.mega-menu-item.mega-toggle-on li.mega-hide-sub-menu-on-mobile > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-hide-sub-menu-on-mobile > ul.mega-sub-menu {display: none;}}@media only screen and (min-width: 1024px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="fade"] li.mega-menu-item > ul.mega-sub-menu {opacity: 0;transition: opacity 200ms ease-in, visibility 200ms ease-in;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="fade"].mega-no-js li.mega-menu-item:hover > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="fade"].mega-no-js li.mega-menu-item:focus > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="fade"] li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="fade"] li.mega-menu-item.mega-menu-megamenu.mega-toggle-on ul.mega-sub-menu {opacity: 1;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="fade_up"] li.mega-menu-item.mega-menu-megamenu > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="fade_up"] li.mega-menu-item.mega-menu-flyout ul.mega-sub-menu {opacity: 0;transform: translate(0, 10px);transition: opacity 200ms ease-in, transform 200ms ease-in, visibility 200ms ease-in;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="fade_up"].mega-no-js li.mega-menu-item:hover > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="fade_up"].mega-no-js li.mega-menu-item:focus > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="fade_up"] li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="fade_up"] li.mega-menu-item.mega-menu-megamenu.mega-toggle-on ul.mega-sub-menu {opacity: 1;transform: translate(0, 0);}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="slide_up"] li.mega-menu-item.mega-menu-megamenu > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="slide_up"] li.mega-menu-item.mega-menu-flyout ul.mega-sub-menu {transform: translate(0, 10px);transition: transform 200ms ease-in, visibility 200ms ease-in;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="slide_up"].mega-no-js li.mega-menu-item:hover > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="slide_up"].mega-no-js li.mega-menu-item:focus > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="slide_up"] li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect="slide_up"] li.mega-menu-item.mega-menu-megamenu.mega-toggle-on ul.mega-sub-menu {transform: translate(0, 0);}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-collapse-children > ul.mega-sub-menu {display: none;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-collapse-children.mega-toggle-on > ul.mega-sub-menu {display: block;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation.mega-no-js li.mega-menu-item:hover > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation.mega-no-js li.mega-menu-item:focus > ul.mega-sub-menu, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu {visibility: visible;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu ul.mega-sub-menu {visibility: inherit;opacity: 1;display: block;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-1-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-2-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 50%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-3-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 33.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-4-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 25%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-5-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 20%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-6-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 16.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item a[class^="dashicons"]:before {font-family: dashicons;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item a.mega-menu-link:before {display: inline-block;font: inherit;font-family: dashicons;position: static;margin: 0 6px 0 0px;vertical-align: top;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;color: inherit;background: transparent;height: auto;width: auto;top: auto;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-hide-text a.mega-menu-link:before {margin: 0;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item.mega-hide-text li.mega-menu-item a.mega-menu-link:before {margin: 0 6px 0 0;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-align-bottom-left.mega-toggle-on > a.mega-menu-link {border-radius: 0;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-align-bottom-right > ul.mega-sub-menu {right: 0;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-align-bottom-right.m
2325ega-toggle-on > a.mega-menu-link {border-radius: 0;}@media only screen and (min-width: 1024px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu.mega-menu-item {position: static;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item {margin: 0 30px 0 0;display: inline-block;height: auto;vertical-align: middle;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-item-align-right {float: right;}@media only screen and (min-width: 1024px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-item-align-right {margin: 0 0 0 30px;}}@media only screen and (min-width: 1024px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-item-align-float-left {float: left;}}@media only screen and (min-width: 1024px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item > a.mega-menu-link:focus {background: rgba(255, 255, 255, 0);color: black;font-weight: bold;text-decoration: none;border-color: #fff;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-toggle-on > a.mega-menu-link {background: rgba(255, 255, 255, 0);color: black;font-weight: bold;text-decoration: none;border-color: #fff;}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-toggle-on > a.mega-menu-link {color: #ffffff;background: #b38750;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-current-menu-item > a.mega-menu-link, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-current-menu-ancestor > a.mega-menu-link, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-current-page-ancestor > a.mega-menu-link {background: rgba(255, 255, 255, 0);color: black;font-weight: bold;text-decoration: none;border-color: #fff;}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-current-menu-item > a.mega-menu-link, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-current-menu-ancestor > a.mega-menu-link, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-current-page-ancestor > a.mega-menu-link {color: #ffffff;background: #b38750;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item > a.mega-menu-link {line-height: 35px;height: 35px;padding: 0px 0px 0px 0px;vertical-align: baseline;width: auto;display: block;color: black;text-transform: none;text-decoration: none;text-align: left;background: rgba(0, 0, 0, 0);border: 0;border-radius: 0;font-family: inherit;font-size: 16px;font-weight: normal;outline: none;}@media only screen and (min-width: 1024px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-multi-line > a.mega-menu-link {line-height: inherit;display: table-cell;vertical-align: middle;}}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-multi-line > a.mega-menu-link br {display: none;}}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item {display: list-item;margin: 0;clear: both;border: 0;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item.mega-item-align-right {float: none;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-item > a.mega-menu-link {border-radius: 0;border: 0;margin: 0;line-height: 40px;height: 40px;padding: 0 10px;background: transparent;text-align: left;color: #ffffff;font-size: 14px;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row {width: 100%;float: left;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row .mega-menu-column {float: left;min-height: 1px;}@media only screen and (min-width: 1024px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-1-of-1 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-1-of-2 {width: 50%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-2-of-2 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-1-of-3 {width: 33.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-2-of-3 {width: 66.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-3-of-3 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-1-of-4 {width: 25%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-2-of-4 {width: 50%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-3-of-4 {width: 75%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-4-of-4 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-1-of-5 {width: 20%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-2-of-5 {width: 40%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-3-of-5 {width: 60%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-4-of-5 {width: 80%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-5-of-5 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-1-of-6 {width: 16.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-2-of-6 {width: 33.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-3-of-6 {width: 50%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-4-of-6 {width: 66.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-5-of-6 {width: 83.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-6-of-6 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-1-of-7 {width: 14.2857142857%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-2-of-7 {width: 28.5714285714%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-3-of-7 {width: 42.8571428571%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-4-of-7 {width: 57.1428571429%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu >
2325 li.mega-menu-columns-5-of-7 {width: 71.4285714286%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-6-of-7 {width: 85.7142857143%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-7-of-7 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-1-of-8 {width: 12.5%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-2-of-8 {width: 25%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-3-of-8 {width: 37.5%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-4-of-8 {width: 50%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-5-of-8 {width: 62.5%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-6-of-8 {width: 75%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-7-of-8 {width: 87.5%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-8-of-8 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-1-of-9 {width: 11.1111111111%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-2-of-9 {width: 22.2222222222%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-3-of-9 {width: 33.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-4-of-9 {width: 44.4444444444%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-5-of-9 {width: 55.5555555556%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-6-of-9 {width: 66.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-7-of-9 {width: 77.7777777778%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-8-of-9 {width: 88.8888888889%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-9-of-9 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-1-of-10 {width: 10%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-2-of-10 {width: 20%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-3-of-10 {width: 30%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-4-of-10 {width: 40%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-5-of-10 {width: 50%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-6-of-10 {width: 60%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-7-of-10 {width: 70%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-8-of-10 {width: 80%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-9-of-10 {width: 90%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-10-of-10 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-1-of-11 {width: 9.0909090909%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-2-of-11 {width: 18.1818181818%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-3-of-11 {width: 27.2727272727%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-4-of-11 {width: 36.3636363636%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-5-of-11 {width: 45.4545454545%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-6-of-11 {width: 54.5454545455%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-7-of-11 {width: 63.6363636364%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-8-of-11 {width: 72.7272727273%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-9-of-11 {width: 81.8181818182%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-10-of-11 {width: 90.9090909091%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-11-of-11 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-1-of-12 {width: 8.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-2-of-12 {width: 16.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-3-of-12 {width: 25%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-4-of-12 {width: 33.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-5-of-12 {width: 41.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-6-of-12 {width: 50%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-7-of-12 {width: 58.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-8-of-12 {width: 66.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-9-of-12 {width: 75%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-10-of-12 {width: 83.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-11-of-12 {width: 91.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-columns-12-of-12 {width: 100%;}}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-column {width: 100%;clear: both;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row .mega-menu-column > ul.mega-sub-menu > li.mega-menu-item {padding: 15px 15px 15px 15px;width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu {z-index: 9998;border-radius: 0;background: white;border: 0;padding: 0px 0px 0px 0px;position: absolute;width: 100%;max-width: none;left: 0;padding-left: 10%;padding-right: 10%;}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu {float: left;position: static;width: 100%;}}@media only screen and (min-width: 1024px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-1-of-1 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-1-of-2 {width: 50%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-2-of-2 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-1-of-3 {width: 33.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-2-of-3 {width: 66.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-3-of-3 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-1-of-4 {width: 25%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-2-of-4 {width: 50%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-3-of-4 {width: 75%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-4-of-4 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-1-of-5 {width: 20%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-2-of-5 {width: 40%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-3-of-5 {width: 60%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-4-of-5 {width: 80%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-5-of-5 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-1-of-6 {width: 16.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-2-of-6 {width: 33.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-3-of-6 {width: 50%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-4-of-6 {width: 66.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-5-of-6 {width: 83.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-6-of-6 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-1-of-7 {width: 14.2857142857%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-2-of-7 {width: 28.5714285714%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-3-of-7 {width: 42.8571428571%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-4-of-7 {width: 57.1428571429%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-5-of-7 {width: 71.428571428
23256%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-6-of-7 {width: 85.7142857143%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-7-of-7 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-1-of-8 {width: 12.5%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-2-of-8 {width: 25%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-3-of-8 {width: 37.5%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-4-of-8 {width: 50%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-5-of-8 {width: 62.5%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-6-of-8 {width: 75%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-7-of-8 {width: 87.5%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-8-of-8 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-1-of-9 {width: 11.1111111111%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-2-of-9 {width: 22.2222222222%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-3-of-9 {width: 33.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-4-of-9 {width: 44.4444444444%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-5-of-9 {width: 55.5555555556%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-6-of-9 {width: 66.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-7-of-9 {width: 77.7777777778%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-8-of-9 {width: 88.8888888889%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-9-of-9 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-1-of-10 {width: 10%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-2-of-10 {width: 20%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-3-of-10 {width: 30%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-4-of-10 {width: 40%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-5-of-10 {width: 50%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-6-of-10 {width: 60%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-7-of-10 {width: 70%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-8-of-10 {width: 80%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-9-of-10 {width: 90%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-10-of-10 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-1-of-11 {width: 9.0909090909%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-2-of-11 {width: 18.1818181818%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-3-of-11 {width: 27.2727272727%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-4-of-11 {width: 36.3636363636%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-5-of-11 {width: 45.4545454545%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-6-of-11 {width: 54.5454545455%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-7-of-11 {width: 63.6363636364%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-8-of-11 {width: 72.7272727273%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-9-of-11 {width: 81.8181818182%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-10-of-11 {width: 90.9090909091%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-11-of-11 {width: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-1-of-12 {width: 8.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-2-of-12 {width: 16.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-3-of-12 {width: 25%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-4-of-12 {width: 33.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-5-of-12 {width: 41.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-6-of-12 {width: 50%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-7-of-12 {width: 58.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-8-of-12 {width: 66.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-9-of-12 {width: 75%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-10-of-12 {width: 83.3333333333%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-11-of-12 {width: 91.6666666667%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-columns-12-of-12 {width: 100%;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu .mega-description-group .mega-menu-description {margin: 5px 0;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item ul.mega-sub-menu {clear: both;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu {margin-left: 10px;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu {margin-left: 10px;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item {color: black;font-family: inherit;font-size: 14px;display: block;float: left;clear: none;padding: 15px 15px 15px 15px;vertical-align: top;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item.mega-menu-clear, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item.mega-menu-clear {clear: left;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item h4.mega-block-title, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item h4.mega-block-title {color: black;font-family: inherit;font-size: 16px;text-transform: uppercase;text-decoration: none;font-weight: bold;text-align: left;margin: 0px 0px 0px 0px;padding: 0px 0px 5px 0px;vertical-align: top;display: block;visibility: inherit;border: 0;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item h4.mega-block-title:hover, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item h4.mega-block-title:hover {border-color: rgba(0, 0, 0, 0);}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {color: black;/* Mega Menu > Menu Themes > Mega Menus > Second Level Menu Items */font-family: inherit;font-size: 14px;text-transform: none;text-decoration: none;font-weight: normal;text-align: left;margin: 0px 0px 0px 0px;padding: 0px 0px 0px 0px;vertical-align: top;display: block;border: 0;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover {border-color: rgba(0, 0, 0, 0);}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus {color: black;/* Mega Menu > Menu Themes > Mega Menus >
2325 Second Level Menu Items (Hover) */font-weight: bold;text-decoration: none;background: rgba(0, 0, 0, 0);}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover > span.mega-title-below, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus > span.mega-title-below, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover > span.mega-title-below, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus > span.mega-title-below {text-decoration: none;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link {color: black;/* Mega Menu > Menu Themes > Mega Menus > Third Level Menu Items */font-family: inherit;font-size: 14px;text-transform: none;text-decoration: none;font-weight: normal;text-align: left;margin: 0px 0px 0px 0px;padding: 0px 0px 0px 0px;vertical-align: top;display: block;border: 0;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link:hover {border-color: rgba(0, 0, 0, 0);}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item.mega-icon-left.mega-has-description.mega-has-icon > a.mega-menu-link, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item.mega-icon-left.mega-has-description.mega-has-icon > a.mega-menu-link {display: flex;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link:focus, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link:focus {color: black;/* Mega Menu > Menu Themes > Mega Menus > Third Level Menu Items (Hover) */font-weight: normal;text-decoration: none;background: rgba(0, 0, 0, 0);}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu {border: 0;padding: 10px;border-radius: 0;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item {width: 100%;clear: both;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {color: black;font-family: inherit;font-size: 14px;text-transform: none;text-decoration: none;font-weight: normal;margin: 0;border: 0;padding: 0px 0px 0px 0px;vertical-align: top;display: block;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus {color: black;font-weight: normal;text-decoration: none;background: rgba(0, 0, 0, 0);}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout ul.mega-sub-menu {z-index: 9998;position: absolute;width: 250px;max-width: none;padding: 0px 0px 0px 0px;border: 0;background: #f1f1f1;border-radius: 0;}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout ul.mega-sub-menu {float: left;position: static;width: 100%;padding: 0;border: 0;border-radius: 0;}}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item {clear: both;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item a.mega-menu-link {display: block;background: white;color: #666;font-family: inherit;font-size: 14px;font-weight: normal;padding: 0px 10px 0px 10px;line-height: 35px;text-decoration: none;text-transform: none;vertical-align: baseline;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item:first-child > a.mega-menu-link {border-top-left-radius: 0px;border-top-right-radius: 0px;}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item:first-child > a.mega-menu-link {border-top-left-radius: 0;border-top-right-radius: 0;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item:last-child > a.mega-menu-link {border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item:last-child > a.mega-menu-link {border-bottom-right-radius: 0;border-bottom-left-radius: 0;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item a.mega-menu-link:hover, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item a.mega-menu-link:focus {background: #b38750;font-weight: normal;text-decoration: none;color: white;}@media only screen and (min-width: 1024px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu {position: absolute;
2325left: 100%;top: 0;}}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu a.mega-menu-link {padding-left: 20px;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu ul.mega-sub-menu a.mega-menu-link {padding-left: 30px;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator {display: inline-block;width: auto;background: transparent;position: relative;pointer-events: auto;left: auto;min-width: auto;font-size: inherit;padding: 0;margin: 0 0 0 6px;height: auto;line-height: inherit;color: inherit;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator:after {content: "ï";font-family: dashicons;font-weight: normal;display: inline-block;margin: 0;vertical-align: top;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;transform: rotate(0);color: inherit;position: relative;background: transparent;height: auto;width: auto;right: auto;line-height: inherit;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item-has-children li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator {float: right;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item-has-children.mega-collapse-children.mega-toggle-on > a.mega-menu-link > span.mega-indicator:after {content: "ï";}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator {float: right;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item-has-children.mega-toggle-on > a.mega-menu-link > span.mega-indicator:after {content: "ï";}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item-has-children.mega-hide-sub-menu-on-mobile > a.mega-menu-link > span.mega-indicator {display: none;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-megamenu:not(.mega-menu-tabbed) li.mega-menu-item-has-children:not(.mega-collapse-children) > a.mega-menu-link > span.mega-indicator, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-item-has-children.mega-hide-arrow > a.mega-menu-link > span.mega-indicator {display: none;}@media only screen and (min-width: 1024px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-flyout li.mega-menu-item a.mega-menu-link > span.mega-indicator:after {content: "ï
";}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-flyout.mega-align-bottom-right li.mega-menu-item a.mega-menu-link {text-align: right;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-flyout.mega-align-bottom-right li.mega-menu-item a.mega-menu-link > span.mega-indicator {float: left;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-flyout.mega-align-bottom-right li.mega-menu-item a.mega-menu-link > span.mega-indicator:after {content: "ï";margin: 0 6px 0 0;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-flyout.mega-align-bottom-right li.mega-menu-item a.mega-menu-link:before {float: right;margin: 0 0 0 6px;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-menu-flyout.mega-align-bottom-right ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu {left: -100%;top: 0;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li[class^="mega-lang-item"] > a.mega-menu-link > img {display: inline;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation a.mega-menu-link > img.wpml-ls-flag, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation a.mega-menu-link > img.iclflag {display: inline;margin-right: 8px;}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-hide-on-mobile, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-hide-on-mobile, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item.mega-hide-on-mobile {display: none;}}@media only screen and (min-width: 1024px) {#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation li.mega-hide-on-desktop, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-hide-on-desktop, #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item.mega-hide-on-desktop {display: none;}}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation:after {content: "";display: table;clear: both;}}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation + button.mega-close {visibility: hidden;transition: left 200ms ease-in-out, right 200ms ease-in-out, visibility 200ms ease-in-out;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect-mobile^="slide_left"] + button.mega-close {right: 0;left: 100%;}#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation[data-effect-mobile^="slide_right"] + button.mega-close {right: 100%;left: 0;}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation:has(.mega-menu-open) #mega-menu-primary_navigation[data-effect-mobile^="slide_"] + button.mega-close {display: flex;position: fixed;top: 0;z-index: 99999999999;cursor: pointer;visibility: visible;}#mega-menu-wrap-primary_navigation:has(.mega-menu-open) #mega-menu-primary_navigation[data-effect-mobile^="slide_"] + button.mega-close:before {display: flex;content: "ï
";font-family: dashicons;font-weight: normal;color: #fff;align-items: center;justify-content: center;width: 40px;height: 40px;font-size: 16px;}#mega-menu-wrap-primary_navigation:has(.mega-menu-open) #mega-menu-primary_navigation[data-effect-mobile^="slide_left"] + button.mega-close {right: 300px;left: auto;}#mega-menu-wrap-primary_navigation:has(.mega-menu-open) #mega-menu-primary_navigation[data-effect-mobile^="slide_right"] + button.mega-close {left: 300px;right: auto;}}#mega-menu-wrap-primary_navigation .mega-menu-toggle {display: none;z-index: 1;
2325cursor: pointer;background: rgba(255, 255, 255, 0);border-radius: 0;line-height: 40px;height: 40px;text-align: left;user-select: none;-webkit-tap-highlight-color: transparent;outline: none;white-space: nowrap;}#mega-menu-wrap-primary_navigation .mega-menu-toggle img {max-width: 100%;padding: 0;}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation .mega-menu-toggle {display: -webkit-box;display: -ms-flexbox;display: -webkit-flex;display: flex;}}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-blocks-left, #mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-blocks-center, #mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-blocks-right {display: -webkit-box;display: -ms-flexbox;display: -webkit-flex;display: flex;-ms-flex-preferred-size: 33.33%;-webkit-flex-basis: 33.33%;flex-basis: 33.33%;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-blocks-left {-webkit-box-flex: 1;-ms-flex: 1;-webkit-flex: 1;flex: 1;-webkit-box-pack: start;-ms-flex-pack: start;-webkit-justify-content: flex-start;justify-content: flex-start;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-blocks-left .mega-toggle-block {margin-left: 6px;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-blocks-left .mega-toggle-block:only-child {margin-right: 6px;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-blocks-center {-webkit-box-pack: center;-ms-flex-pack: center;-webkit-justify-content: center;justify-content: center;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-blocks-center .mega-toggle-block {margin-left: 3px;margin-right: 3px;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-blocks-right {-webkit-box-flex: 1;-ms-flex: 1;-webkit-flex: 1;flex: 1;-webkit-box-pack: end;-ms-flex-pack: end;-webkit-justify-content: flex-end;justify-content: flex-end;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-blocks-right .mega-toggle-block {margin-right: 6px;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-blocks-right .mega-toggle-block:only-child {margin-left: 6px;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-block {display: -webkit-box;display: -ms-flexbox;display: -webkit-flex;display: flex;height: 100%;outline: 0;-webkit-align-self: center;-ms-flex-item-align: center;align-self: center;-ms-flex-negative: 0;-webkit-flex-shrink: 0;flex-shrink: 0;}@media only screen and (max-width: 1023px) {#mega-menu-wrap-primary_navigation .mega-menu-toggle {position: relative;}#mega-menu-wrap-primary_navigation .mega-menu-toggle + #mega-menu-primary_navigation {background: black;padding: 60px 25px 60px 25px;display: none;position: absolute;width: 100%;z-index: 9999999;}#mega-menu-wrap-primary_navigation .mega-menu-toggle.mega-menu-open + #mega-menu-primary_navigation {display: block;}#mega-menu-wrap-primary_navigation .mega-menu-toggle + #mega-menu-primary_navigation {position: fixed;display: block;width: 300px;max-width: 100%;height: 100vh;max-height: 100vh;top: 0;box-sizing: border-box;transition: left 200ms ease-in-out, right 200ms ease-in-out, visibility 200ms ease-in-out;overflow-y: auto;overflow-x: hidden;z-index: 9999999999;overscroll-behavior: contain;visibility: hidden;}#mega-menu-wrap-primary_navigation .mega-menu-toggle.mega-menu-open + #mega-menu-primary_navigation {visibility: visible;}#mega-menu-wrap-primary_navigation .mega-menu-toggle + #mega-menu-primary_navigation {left: -300px;}#mega-menu-wrap-primary_navigation .mega-menu-toggle.mega-menu-open + #mega-menu-primary_navigation {left: 0;}#mega-menu-wrap-primary_navigation .mega-menu-toggle.mega-menu-open:after {position: fixed;width: 100%;height: 99999px;content: "";top: 0;left: 0;opacity: 0.5;background: black;cursor: pointer;z-index: 9999999998;}}html.mega-menu-primary_navigation-off-canvas-open {overflow: hidden;height: auto;}html.mega-menu-primary_navigation-off-canvas-open body {overflow: hidden;height: auto;}html.mega-menu-primary_navigation-off-canvas-open #wpadminbar {z-index: 0;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-block-0 {cursor: pointer;/*! * Hamburgers * @description Tasty CSS-animated hamburgers * @author Jonathan Suh @jonsuh * @site https://jonsuh.com/hamburgers * @link https://github.com/jonsuh/hamburgers */}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated {padding: 0;display: -webkit-box;display: -ms-flexbox;display: -webkit-flex;display: flex;cursor: pointer;transition-property: opacity, filter;transition-duration: 0.15s;transition-timing-function: linear;font: inherit;color: inherit;text-transform: none;background-color: transparent;border: 0;margin: 0;overflow: visible;transform: scale(0.8);align-self: center;outline: 0;background: none;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-box {width: 40px;height: 24px;display: inline-block;position: relative;outline: 0;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner {display: block;top: 50%;margin-top: -2px;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner, #mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner::before, #mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner::after {width: 40px;height: 4px;background-color: #ddd;border-radius: 4px;position: absolute;transition-property: transform;transition-duration: 0.15s;transition-timing-function: ease;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner::before, #mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner::after {content: "";display: block;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner::before {top: -10px;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-inner::after {bottom: -10px;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-slider .mega-toggle-animated-inner {top: 2px;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-slider .mega-toggle-animated-inner::before {top: 10px;transition-property: transform, opacity;transition-timing-function: ease;transition-duration: 0.15s;}#mega-menu-wrap-primary_navigation .mega-menu-toggle .mega-toggle-block-0 .mega-toggle-animated-slider .mega-toggle-animated-inner::after {top: 20px;}#mega-menu-wrap-primary_navigation .mega-menu-toggle.mega-menu-open .mega-toggle-block-0 .mega-toggle-animated-slider .mega-toggle-animated-inner {transform: translate3d(0, 10px, 0) rotate(45deg);}#mega-menu-wrap-primary_navigation .mega-menu-toggle.mega-menu-open .mega-toggle-block-0 .mega-toggle-animated-slider .mega-toggle-animated-inner::before {transform: rotate(-45deg) translate3d(-5.71429px, -6px, 0);opacity: 0;}#mega-menu-wrap-primary_navigation .mega-menu-toggle.mega-menu-open .mega-toggle-block-0 .mega-toggle-animated-slider .mega-toggle-animated-inner::after {transform: translate3d(0, -20px, 0
2325) rotate(-90deg);}/* Style changes to go into mega-menu.css */.wp-block {}</style> 2326<noscript><style id="rocket-lazyload-nojs-css">.rll-youtube-player, [data-lazy-src]{display:none !important;}</style></noscript> <style id="rocket-lazyrender-inline-css">[data-wpr-lazyrender] {content-visibility: auto;}</style><style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style> 2327<noscript> 2328<style id="wpr-lazyload-bg-nostyle">.chosen-container-single .chosen-single abbr{--wpr-bg-5c4bae89-0f47-4502-8de7-0d55dbd277da: url('https://gundog-journal.com/app/plugins/search-filter-pro/public/assets/css/chosen-sprite.png');}.chosen-container-single .chosen-single div b{--wpr-bg-ccea5c9b-5dd8-4a90-a14c-48be0b88932d: url('https://gundog-journal.com/app/plugins/search-filter-pro/public/assets/css/chosen-sprite.png');}.chosen-container-single .chosen-search input[type=text]{--wpr-bg-c35db41c-d341-4a01-9bed-617bca2d4429: url('https://gundog-journal.com/app/plugins/search-filter-pro/public/assets/css/chosen-sprite.png');}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{--wpr-bg-6be6903b-65f3-4680-82b1-59d5d9a81d97: url('https://gundog-journal.com/app/plugins/search-filter-pro/public/assets/css/chosen-sprite.png');}.chosen-rtl .chosen-search input[type=text]{--wpr-bg-94c36cb3-4fe7-4c18-91c3-c61ba0413e8b: url('https://gundog-journal.com/app/plugins/search-filter-pro/public/assets/css/chosen-sprite.png');}.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span,.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container-single .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-rtl .chosen-search input[type=text]{--wpr-bg-841486b9-121a-4473-b863-7fc029a7973c: url('https://gundog-journal.com/app/plugins/search-filter-pro/public/assets/css/[email protected]');}.ll-skin-melon .ui-datepicker .ui-datepicker-next span,.ll-skin-melon .ui-datepicker .ui-datepicker-prev span{--wpr-bg-b7a5e9a0-aa71-4ac6-9adb-39b7de056106: url('https://gundog-journal.com/app/plugins/search-filter-pro/public/assets/img/ui-icons_ffffff_256x240.png');}</style> 2329</noscript>
2330<script type="application/javascript">const rocket_pairs = [{"selector":".chosen-container-single .chosen-single abbr","style":".chosen-container-single .chosen-single abbr{--wpr-bg-5c4bae89-0f47-4502-8de7-0d55dbd277da: url('https:\/\/gundog-journal.com\/app\/plugins\/search-filter-pro\/public\/assets\/css\/chosen-sprite.png');}","hash":"5c4bae89-0f47-4502-8de7-0d55dbd277da","url":"https:\/\/gundog-journal.com\/app\/plugins\/search-filter-pro\/public\/assets\/css\/chosen-sprite.png"},{"selector":".chosen-container-single .chosen-single div b","style":".chosen-container-single .chosen-single div b{--wpr-bg-ccea5c9b-5dd8-4a90-a14c-48be0b88932d: url('https:\/\/gundog-journal.com\/app\/plugins\/search-filter-pro\/public\/assets\/css\/chosen-sprite.png');}","hash":"ccea5c9b-5dd8-4a90-a14c-48be0b88932d","url":"https:\/\/gundog-journal.com\/app\/plugins\/search-filter-pro\/public\/assets\/css\/chosen-sprite.png"},{"selector":".chosen-container-single .chosen-search input[type=text]","style":".chosen-container-single .chosen-search input[type=text]{--wpr-bg-c35db41c-d341-4a01-9bed-617bca2d4429: url('https:\/\/gundog-journal.com\/app\/plugins\/search-filter-pro\/public\/assets\/css\/chosen-sprite.png');}","hash":"c35db41c-d341-4a01-9bed-617bca2d4429","url":"https:\/\/gundog-journal.com\/app\/plugins\/search-filter-pro\/public\/assets\/css\/chosen-sprite.png"},{"selector":".chosen-container-multi .chosen-choices li.search-choice .search-choice-close","style":".chosen-container-multi .chosen-choices li.search-choice .search-choice-close{--wpr-bg-6be6903b-65f3-4680-82b1-59d5d9a81d97: url('https:\/\/gundog-journal.com\/app\/plugins\/search-filter-pro\/public\/assets\/css\/chosen-sprite.png');}","hash":"6be6903b-65f3-4680-82b1-59d5d9a81d97","url":"https:\/\/gundog-journal.com\/app\/plugins\/search-filter-pro\/public\/assets\/css\/chosen-sprite.png"},{"selector":".chosen-rtl .chosen-search input[type=text]","style":".chosen-rtl .chosen-search input[type=text]{--wpr-bg-94c36cb3-4fe7-4c18-91c3-c61ba0413e8b: url('https:\/\/gundog-journal.com\/app\/plugins\/search-filter-pro\/public\/assets\/css\/chosen-sprite.png');}","hash":"94c36cb3-4fe7-4c18-91c3-c61ba0413e8b","url":"https:\/\/gundog-journal.com\/app\/plugins\/search-filter-pro\/public\/assets\/css\/chosen-sprite.png"},{"selector":".chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span,.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container-single .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-rtl .chosen-search input[type=text]","style":".chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span,.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container-single .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-rtl .chosen-search input[type=text]{--wpr-bg-841486b9-121a-4473-b863-7fc029a7973c: url('https:\/\/gundog-journal.com\/app\/plugins\/search-filter-pro\/public\/assets\/css\/[email protected]');}","hash":"841486b9-121a-4473-b863-7fc029a7973c","url":"https:\/\/gundog-journal.com\/app\/plugins\/search-filter-pro\/public\/assets\/css\/[email protected]"},{"selector":".ll-skin-melon .ui-datepicker .ui-datepicker-next span,.ll-skin-melon .ui-datepicker .ui-datepicker-prev span","style":".ll-skin-melon .ui-datepicker .ui-datepicker-next span,.ll-skin-melon .ui-datepicker .ui-datepicker-prev span{--wpr-bg-b7a5e9a0-aa71-4ac6-9adb-39b7de056106: url('https:\/\/gundog-journal.com\/app\/plugins\/search-filter-pro\/public\/assets\/img\/ui-icons_ffffff_256x240.png');}","hash":"b7a5e9a0-aa71-4ac6-9adb-39b7de056106","url":"https:\/\/gundog-journal.com\/app\/plugins\/search-filter-pro\/public\/assets\/img\/ui-icons_ffffff_256x240.png"}]; const rocket_excluded_pairs = [];</script>
2330<meta name="generator" content="WP Rocket 3.18.1.5" data-wpr-features="wpr_lazyload_css_bg_img wpr_defer_js wpr_lazyload_images wpr_lazyload_iframes wpr_automatic_lazy_rendering wpr_oci wpr_image_dimensions wpr_desktop wpr_preload_links" /></head> 2331 2332 <body data-cmplz=1 class="archive category category-training category-21 wp-embed-responsive mega-menu-primary-navigation"> 2333 2334 <style> 2335 :root { 2336 --color-primary: 179, 135, 80; 2337 --color-secondary: 78, 73, 77; 2338 } 2339 </style> 2340 2341 2342 <div id="app"> 2343 <div class="min-h-screen"> 2344 <div class="mt-[198px] lg:mt-[205.99px] with-ad-and-cta"> 2345 <section class="relative lg:mt-[40px] mt-[20px]"> 2346 2347 2348 <div class="container "> 2349 <div class="flex justify-center items-center"> 2350 <div class="a-single a-4"><div class="ad-stack"> 2351 <!-- /22987101562/GDJ.com-Billboard --> 2352 <div class="billboard-and-leaderboard-ad" id='div-gpt-ad-1737908991816-0' > 2353
2353<script> 2354 window.addEventListener('gptScriptLoaded', function() { 2355 googletag.cmd.push(function() { 2356 googletag.display('div-gpt-ad-1737908991816-0'); 2357 }); 2358 }); 2359 </script>
2359 2360 </div> 2361 <!-- /22987101562/GDJ.com-Leaderboard --> 2362 <div class="billboard-and-leaderboard-ad" id='div-gpt-ad-1737909123474-0' > 2363
2363<script> 2364 window.addEventListener('gptScriptLoaded', function() { 2365 googletag.cmd.push(function() { 2366 googletag.display('div-gpt-ad-1737909123474-0'); 2367 }); 2368 }); 2369 </script>
2369 2370 </div> 2371</div></div> </div> 2372 </div> 2373 2374 2375</section> 2376 </div> 2377 2378 2379<style> 2380 .tws-header-logo, 2381 picture:has(> .tws-header-logo) { 2382 height: 40px; 2383 width: auto; 2384 max-width: 240px; 2385 object-fit: contain; 2386 display: block; 2387 } 2388 /* Imagify may rewrap the img in a <picture> and move the class up (CLAUDE.md 5.5) */ 2389 picture:has(> .tws-header-logo) > img, 2390 picture.tws-header-logo > img { 2391 height: 100% !important; 2392 width: auto !important; 2393 max-width: 100%; 2394 object-fit: contain; 2395 } 2396</style> 2397 2398 2399 2400<header id="header" 2401 class="header-group transition bg-white duration-500 fixed top-0 inset-x-0 w-full z-[9999] max-w-full" 2402 x-data="{ expanded: false }"> 2403 <section class="header-cta bg-primary text-center flex text-white items-center justify-center py-[10px] px-15px"> 2404 <span class="text-[12px] font-semibold"><p>â <a href="https://shop.twsgroup.com/Subscribe/Gundog-Journal">Subscribe and save. Pay just £11.66 per issue – 16% cheaper than buying in-store at £13.95! Click here to subscribe</a> â </p> 2405</span> 2406 </section> 2407 2408<!-- Desktop Header --> 2409<div class="nav-header-main hidden lg:flex flex-row justify-between items-center container py-[20px] relative min-h-[80px]"> 2410 2411 <!-- Logo + Tagline --> 2412 <div class="flex flex-row items-center gap-[15px] flex-shrink-0"> 2413 <a href="https://gundog-journal.com/" aria-label="Home"> 2414 <img width="2000" height="558" class="tws-header-logo" src="/app/uploads/sites/2/2025/01/GJ-logo-BLACK-1.png" alt="" /> 2415 </a> 2416 </div> 2417 2418 <!-- Navigation Menu --> 2419 <div class="main-nav-bar flex justify-start grow px-[40px]"> 2420 <div id="mega-menu-wrap-primary_navigation" class="mega-menu-wrap"><div class="mega-menu-toggle"><div class="mega-toggle-blocks-left"></div><div class="mega-toggle-blocks-center"></div><div class="mega-toggle-blocks-right"><div class='mega-toggle-block mega-menu-toggle-animated-block mega-toggle-block-0' id='mega-toggle-block-0'><button aria-label="Toggle Menu" class="mega-toggle-animated mega-toggle-animated-slider" type="button" aria-expanded="false"> 2421 <span class="mega-toggle-animated-box"> 2422 <span class="mega-toggle-animated-inner"></span> 2423 </span> 2424 </button></div></div></div><ul id="mega-menu-primary_navigation" class="mega-menu max-mega-menu mega-menu-horizontal mega-no-js" data-event="hover_intent" data-effect="fade_up" data-effect-speed="200" data-effect-mobile="slide_right" data-effect-speed-mobile="200" data-panel-width=".container" data-mobile-force-width="html" data-second-click="go" data-document-click="collapse" data-vertical-behaviour="standard" data-breakpoint="1023" data-unbind="true" data-mobile-state="collapse_all" data-mobile-direction="vertical" data-hover-intent-timeout="300" data-hover-intent-interval="100"><li class='mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-align-bottom-left mega-menu-flyout mega-menu-item-5308' id='mega-menu-item-5308'><a class="mega-menu-link" href="https://gundog-journal.com/news/" tabindex="0">News</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-current-menu-item mega-align-bottom-left mega-menu-flyout mega-menu-item-5312' id='mega-menu-item-5312'><a class="mega-menu-link" href="https://gundog-journal.com/training/" aria-current="page" tabindex="0">Training</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-align-bottom-left mega-menu-flyout mega-menu-item-5311' id='mega-menu-item-5311'><a class="mega-menu-link" href="https://gundog-journal.com/health/" tabindex="0">Health</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-align-bottom-left mega-menu-flyout mega-menu-item-5309' id='mega-menu-item-5309'><a class="mega-menu-link" href="https://gundog-journal.com/breeds/" tabindex="0">Breeds</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-align-bottom-left mega-menu-flyout mega-menu-item-5310' id='mega-menu-item-5310'><a class="mega-menu-link" href="https://gundog-journal.com/gear/" tabindex="0">
2424Gear</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-align-bottom-left mega-menu-flyout mega-menu-item-75700' id='mega-menu-item-75700'><a class="mega-menu-link" href="https://gundog-journal.com/competitions/" tabindex="0">Competitions</a></li><li class='mega-social-media-links mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-menu-megamenu mega-align-bottom-left mega-menu-grid mega-hide-arrow mega-hide-text mega-hide-on-desktop mega-disable-link mega-menu-item-2873 social-media-links' id='mega-menu-item-2873'><a class="mega-menu-link" tabindex="0" aria-expanded="false" role="button" aria-label="Mobile Social Links"><span class="mega-indicator"></span></a> 2425<ul class="mega-sub-menu"> 2426<li class='mega-menu-row' id='mega-menu-2873-0'> 2427 <ul class="mega-sub-menu"> 2428<li class='mega-menu-column mega-menu-columns-12-of-12' id='mega-menu-2873-0-0'> 2429 <ul class="mega-sub-menu"> 2430<li class='mega-menu-item mega-menu-item-type-widget widget_maxmegamenu_reusable_block mega-menu-item-maxmegamenu_reusable_block-3' id='mega-menu-item-maxmegamenu_reusable_block-3'><!-- widget is empty --></li> </ul> 2431</li> </ul> 2432</li></ul> 2433</li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-78376' id='mega-menu-item-78376'><a class="mega-menu-link" href="#" aria-expanded="false" tabindex="0">More<span class="mega-indicator"></span></a> 2434<ul class="mega-sub-menu"> 2435<li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78379' id='mega-menu-item-78379'><a class="mega-menu-link" href="https://gundog-journal.com/events/">Events</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78377' id='mega-menu-item-78377'><a class="mega-menu-link" href="https://gundog-journal.com/legislation/">Legislation</a></li><li class='mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-78378' id='mega-menu-item-78378'><a class="mega-menu-link" href="https://gundog-journal.com/faqs/">FAQs</a></li></ul> 2436</li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-align-bottom-left mega-menu-flyout mega-menu-item-77866' id='mega-menu-item-77866'><a target="_blank" class="mega-menu-link" href="https://britishshootingshow.com/?utm_source=gundogjournal&utm_medium=nav&utm_campaign=bss" tabindex="0">British Shooting Show</a></li></ul><button class='mega-close' aria-label='Close'></button></div> </div> 2437 2438 <!-- Search & Buttons --> 2439 <div class="flex flex-row gap-[8px] lg:gap-[10px] xl:gap-[12px] 2xl:gap-[15px] items-center flex-shrink-0 lg:min-w-[200px] xl:min-w-[240px] 2xl:min-w-[280px] justify-end"> 2440 <div class="relative flex items-center header-search-wrapper"> 2441 <button @click="expanded = !expanded" class="z-50 relative"> 2442 <svg fill="none" height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"> 2443<circle cx="7" cy="7" r="6.25" stroke="#000000" stroke-width="1.5"/> 2444<path d="M16.6464 17.3536C16.8417 17.5488 17.1583 17.5488 17.3536 17.3536C17.5488 17.1583 17.5488 16.8417 17.3536 16.6464L16.6464 17.3536ZM11.6464 12.3536L16.6464 17.3536L17.3536 16.6464L12.3536 11.6464L11.6464 12.3536Z" fill="#000000"/> 2445</svg> </button> 2446 </div> 2447 2448 <div class="twsnl-sub twsnl-sub--desktop" data-twsnl-sub> 2449 <button type="button" class="btn-normal btn-primary-hover-dark twsnl-sub-btn" aria-expanded="false" aria-haspopup="true" data-twsnl-sub-btn> 2450 <span>Subscribe</span> 2451 <svg class="twsnl-sub-chev" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false"><path d="m2.5 4.5 3.5 3.5 3.5-3.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg> 2452 </button> 2453 2454 <div class="twsnl-sub-dd" role="menu" hidden data-twsnl-sub-dd> 2455 <span class="twsnl-sub-caret" aria-hidden="true"></span> 2456 2457 <a class="twsnl-sub-row twsnl-sub-row--mag" href="https://shop.twsgroup.com/subscribe/gundog-journal" target="_blank" rel="noopener" role="menuitem"> 2458 <span class="twsnl-sub-cover"><img width="240" height="289" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20240%20289'%3E%3C/svg%3E" alt="" decoding="async" data-lazy-src="/app/uploads/sites/2/2026/09/gundog-journal-cover-20260925-133136.jpg"><noscript><img width="240" height="289" src="/app/uploads/sites/2/2026/09/gundog-journal-cover-20260925-133136.jpg" alt="" loading="lazy" decoding="async"></noscript></span> 2459 2460 <span class="twsnl-sub-text"> 2461 <span class="twsnl-sub-eyebrow">The magazine</span> 2462 <span class="twsnl-sub-title">
2462Subscribe to Gundog Journal</span> 2463 <span class="twsnl-sub-desc">Every issue delivered to your door, plus the digital back issue library</span> 2464 <span class="twsnl-sub-link">Go to the shop<svg class="twsnl-sub-arrow" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path d="M3 8h9M8.5 4.5 12 8l-3.5 3.5" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 2465 </span> 2466 </a> 2467 2468 <a class="twsnl-sub-row twsnl-sub-row--news" href="/newsletter/" role="menuitem"> 2469 <svg class="twsnl-sub-ico" viewBox="0 0 24 24" fill="none" aria-hidden="true" focusable="false"><rect x="2.75" y="5.25" width="18.5" height="13.5" rx="2" stroke="currentColor" stroke-width="1.6"/><path d="m3.5 7 8.5 6 8.5-6" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg> 2470 <span class="twsnl-sub-text"> 2471 <span class="twsnl-sub-title">Subscribe to our newsletter</span> 2472 <span class="twsnl-sub-desc">Free monthly email, unsubscribe whenever you like</span> 2473 </span>
2474 <svg class="twsnl-sub-arrow" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path d="M3 8h9M8.5 4.5 12 8l-3.5 3.5" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg> </a> 2475 </div> 2476 </div> 2477 2478 2479 </div> 2480 2481</div> 2482 2483<!-- Desktop Search Bar (appears below header when expanded) --> 2484<div class="desktop-search-dropdown hidden lg:block absolute top-full left-0 right-0 bg-white shadow-lg z-40" 2485 x-show="expanded" 2486 x-transition:enter="transition ease-out duration-300" 2487 x-transition:enter-start="opacity-0 transform -translate-y-2" 2488 x-transition:enter-end="opacity-100 transform translate-y-0" 2489 x-transition:leave="transition ease-in duration-200" 2490 x-transition:leave-start="opacity-100 transform translate-y-0" 2491 x-transition:leave-end="opacity-0 transform -translate-y-2" 2492 x-collapse> 2493 <div class="container py-[20px]"> 2494 <div class="header-search search-wrapper desktop-header-search"> 2495 <div class="tws-is-panel" id="tws-is-1" data-tws-is> 2496 <div class="tws-is-box"> 2497 <svg class="tws-is-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" aria-hidden="true" focusable="false"><circle cx="11" cy="11" r="7"/><line x1="16.5" y1="16.5" x2="21" y2="21"/></svg> 2498 <label class="screen-reader-text" for="tws-is-1-q">Search</label> 2499 <input id="tws-is-1-q" class="tws-is-input" type="search" autocomplete="off" 2500 placeholder="Search Gundog Journalâ¦" 2501 aria-label="Search Gundog Journal"> 2502 <button type="button" class="tws-is-clear" aria-label="Clear search" hidden>×</button> 2503 </div> 2504 <div class="tws-is-body" role="region" aria-live="polite"></div> 2505 </div> </div> 2506 </div> 2507</div> 2508 2509<!-- Mobile Header --> 2510<div class="nav-header-main flex lg:hidden flex-row justify-between items-center container py-[20px] relative"> 2511 2512 <!-- Mobile Menu Toggle (Left) --> 2513 <div class="flex items-center z-10"> 2514 <!-- The mega menu will automatically generate its mobile toggle button here --> 2515 <div class="mega-menu-mobile-toggle"> 2516 <div id="mega-menu-wrap-primary_navigation" class="mega-menu-wrap"><div class="mega-menu-toggle"><div class="mega-toggle-blocks-left"></div><div class="mega-toggle-blocks-center"></div><div class="mega-toggle-blocks-right"><div class='mega-toggle-block mega-menu-toggle-animated-block mega-toggle-block-0' id='mega-toggle-block-0'><button aria-label="Toggle Menu" class="mega-toggle-animated mega-toggle-animated-slider" type="button" aria-expanded="false"> 2517 <span class="mega-toggle-animated-box"> 2518 <span class="mega-toggle-animated-inner"></span> 2519 </span> 2520 </button></div></div></div><ul id="mega-menu-primary_navigation" class="mega-menu max-mega-menu mega-menu-horizontal mega-no-js" data-event="hover_intent" data-effect="fade_up" data-effect-speed="200" data-effect-mobile="slide_right" data-effect-speed-mobile="200" data-panel-width=".container" data-mobile-force-width="html" data-second-click="go" data-document-click="collapse" data-vertical-behaviour="standard" data-breakpoint="1023" data-unbind="true" data-mobile-state="collapse_all" data-mobile-direction="vertical" data-hover-intent-timeout="300" data-hover-intent-interval="100"><li class='mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-align-bottom-left mega-menu-flyout mega-menu-item-5308' id='mega-menu-item-5308'><a class="mega-menu-link" href="https://gundog-journal.com/news/" tabindex="0">News</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-current-menu-item mega-align-bottom-left mega-menu-flyout mega-menu-item-5312' id='mega-menu-item-5312'><a class="mega-menu-link" href="https://gundog-journal.com/training/" aria-current="page" tabindex="0">Training</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-align-bottom-left mega-menu-flyout mega-menu-item-5311' id='mega-menu-item-5311'><a class="mega-menu-link" href="https://gundog-journal.com/health/" tabindex="0">Health</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-align-bottom-left mega-menu-flyout mega-menu-item-5309' id='mega-menu-item-5309'><a class="mega-menu-link" href="https://gundog-journal.com/breeds/" tabindex="0">Breeds</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-align-bottom-left mega-menu-flyout mega-menu-item-5310' id='mega-menu-item-5310'><a class="mega-menu-link" href="https://gundog-journal.com/gear/" tabindex="0">
2520Gear</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-align-bottom-left mega-menu-flyout mega-menu-item-75700' id='mega-menu-item-75700'><a class="mega-menu-link" href="https://gundog-journal.com/competitions/" tabindex="0">Competitions</a></li><li class='mega-social-media-links mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-menu-megamenu mega-align-bottom-left mega-menu-grid mega-hide-arrow mega-hide-text mega-hide-on-desktop mega-disable-link mega-menu-item-2873 social-media-links' id='mega-menu-item-2873'><a class="mega-menu-link" tabindex="0" aria-expanded="false" role="button" aria-label="Mobile Social Links"><span class="mega-indicator"></span></a> 2521<ul class="mega-sub-menu"> 2522<li class='mega-menu-row' id='mega-menu-2873-0'> 2523 <ul class="mega-sub-menu"> 2524<li class='mega-menu-column mega-menu-columns-12-of-12' id='mega-menu-2873-0-0'> 2525 <ul class="mega-sub-menu"> 2526<li class='mega-menu-item mega-menu-item-type-widget widget_maxmegamenu_reusable_block mega-menu-item-maxmegamenu_reusable_block-3' id='mega-menu-item-maxmegamenu_reusable_block-3'><!-- widget is empty --></li> </ul> 2527</li> </ul> 2528</li></ul> 2529</li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-78376' id='mega-menu-item-78376'><a class="mega-menu-link" href="#" aria-expanded="false" tabindex="0">More<span class="mega-indicator"></span></a> 2530<ul class="mega-sub-menu"> 2531<li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78379' id='mega-menu-item-78379'><a class="mega-menu-link" href="https://gundog-journal.com/events/">Events</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78377' id='mega-menu-item-78377'><a class="mega-menu-link" href="https://gundog-journal.com/legislation/">Legislation</a></li><li class='mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-78378' id='mega-menu-item-78378'><a class="mega-menu-link" href="https://gundog-journal.com/faqs/">FAQs</a></li></ul> 2532</li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-align-bottom-left mega-menu-flyout mega-menu-item-77866' id='mega-menu-item-77866'><a target="_blank" class="mega-menu-link" href="https://britishshootingshow.com/?utm_source=gundogjournal&utm_medium=nav&utm_campaign=bss" tabindex="0">British Shooting Show</a></li></ul><button class='mega-close' aria-label='Close'></button></div> </div> 2533 </div> 2534 2535 <!-- Logo (Center) --> 2536 <div class="flex flex-row items-center gap-[15px] absolute left-1/2 transform -translate-x-1/2"> 2537 <a href="https://gundog-journal.com/" aria-label="Home"> 2538 <img width="2000" height="558" class="tws-header-logo" src="/app/uploads/sites/2/2025/01/GJ-logo-BLACK-1.png" alt="" /> 2539 </a> 2540 </div> 2541 2542 <!-- Search (Right) --> 2543 <div class="flex items-center z-10"> 2544 <button @click="expanded = !expanded" class="lg:hidden"> 2545 <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> 2546<circle cx="7" cy="7" r="6.25" stroke="#ffffff" stroke-width="1.5"/> 2547<path d="M16.6464 17.3536C16.8417 17.5488 17.1583 17.5488 17.3536 17.3536C17.5488 17.1583 17.5488 16.8417 17.3536 16.6464L16.6464 17.3536ZM11.6464 12.3536L16.6464 17.3536L17.3536 16.6464L12.3536 11.6464L11.6464 12.3536Z" fill="#ffffff"/> 2548</svg> </button> 2549 </div> 2550 2551</div> 2552 2553 2554<!-- Mobile CTA Buttons --> 2555<div class="nav-header-main flex lg:hidden justify-evenly container align-center pb-[15px] lg:pb-[0px]"> 2556 <div class="twsnl-sub twsnl-sub--mobile" data-twsnl-sub> 2557 <button type="button" class="btn-normal btn-primary-hover-dark twsnl-sub-btn mobile-header-cta" aria-expanded="false" aria-haspopup="true" data-twsnl-sub-btn> 2558 <span>Subscribe</span> 2559 <svg class="twsnl-sub-chev" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false">
2559<path d="m2.5 4.5 3.5 3.5 3.5-3.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg> 2560 </button> 2561 2562 <div class="twsnl-sub-dd" role="menu" hidden data-twsnl-sub-dd> 2563 <span class="twsnl-sub-caret" aria-hidden="true"></span> 2564 2565 <a class="twsnl-sub-row twsnl-sub-row--mag" href="https://shop.twsgroup.com/subscribe/gundog-journal" target="_blank" rel="noopener" role="menuitem"> 2566 <span class="twsnl-sub-cover"><img width="240" height="289" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20240%20289'%3E%3C/svg%3E" alt="" decoding="async" data-lazy-src="/app/uploads/sites/2/2026/09/gundog-journal-cover-20260925-133136.jpg"><noscript><img width="240" height="289" src="/app/uploads/sites/2/2026/09/gundog-journal-cover-20260925-133136.jpg" alt="" loading="lazy" decoding="async"></noscript></span> 2567 2568 <span class="twsnl-sub-text"> 2569 <span class="twsnl-sub-eyebrow">The magazine</span> 2570 <span class="twsnl-sub-title">
2570Subscribe to Gundog Journal</span> 2571 <span class="twsnl-sub-desc">Every issue delivered to your door, plus the digital back issue library</span> 2572 <span class="twsnl-sub-link">Go to the shop<svg class="twsnl-sub-arrow" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path d="M3 8h9M8.5 4.5 12 8l-3.5 3.5" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg></span> 2573 </span> 2574 </a> 2575 2576 <a class="twsnl-sub-row twsnl-sub-row--news" href="/newsletter/" role="menuitem"> 2577 <svg class="twsnl-sub-ico" viewBox="0 0 24 24" fill="none" aria-hidden="true" focusable="false"><rect x="2.75" y="5.25" width="18.5" height="13.5" rx="2" stroke="currentColor" stroke-width="1.6"/><path d="m3.5 7 8.5 6 8.5-6" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg> 2578 <span class="twsnl-sub-text"> 2579 <span class="twsnl-sub-title">Subscribe to our newsletter</span> 2580 <span class="twsnl-sub-desc">Free monthly email, unsubscribe whenever you like</span> 2581 </span>
2582 <svg class="twsnl-sub-arrow" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path d="M3 8h9M8.5 4.5 12 8l-3.5 3.5" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg> </a> 2583 </div> 2584 </div> 2585 2586 </div> 2587 2588<!-- Mobile Search Bar (appears below header when expanded) --> 2589<div class="mobile-search-dropdown lg:hidden bg-white shadow-lg" 2590 x-show="expanded" 2591 x-transition:enter="transition ease-out duration-300" 2592 x-transition:enter-start="opacity-0 transform -translate-y-2" 2593 x-transition:enter-end="opacity-100 transform translate-y-0" 2594 x-transition:leave="transition ease-in duration-200" 2595 x-transition:leave-start="opacity-100 transform translate-y-0" 2596 x-transition:leave-end="opacity-0 transform -translate-y-2" 2597 x-collapse> 2598 <div class="header-search search-wrapper mobile-header-search px-[15px] py-[15px]"> 2599 <div class="tws-is-panel" id="tws-is-2" data-tws-is> 2600 <div class="tws-is-box"> 2601 <svg class="tws-is-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" aria-hidden="true" focusable="false"><circle cx="11" cy="11" r="7"/><line x1="16.5" y1="16.5" x2="21" y2="21"/></svg> 2602 <label class="screen-reader-text" for="tws-is-2-q">Search</label> 2603 <input id="tws-is-2-q" class="tws-is-input" type="search" autocomplete="off" 2604 placeholder="Search Gundog Journalâ¦" 2605 aria-label="Search Gundog Journal"> 2606 <button type="button" class="tws-is-clear" aria-label="Clear search" hidden>×</button> 2607 </div> 2608 <div class="tws-is-body" role="region" aria-live="polite"></div> 2609 </div> </div> 2610</div> 2611</header> 2612 2613 <!-- Page Content --> 2614 <main class="text-gray-800"> 2615 2616 <section class="relative lg:mt-[40px] mt-[20px]"> 2617 2618 2619 <div class="container "> 2620 <div class="yoast-breadcrumbs mb-[40px] lg:mt-[40px]"> 2621 <span><span><span><a href="https://gundog-journal.com/">Home</a></span> <span class="breadcrumb-separator">/</span> <span class="breadcrumb_last" aria-current="page">Training</span></span></span> </div> 2622 2623 2624 <style> 2625 .tws-ti-heading{font-size:40px;line-height:46px} 2626 .tws-ti-subtitle{font-size:24px;line-height:28px} 2627 .tws-ti-text{padding:20px} 2628 .tws-ti-block{min-height:300px} 2629 .tws-ti-block.tws-ti-noimg{min-height:0} 2630 .tws-ti-block.tws-ti-nobody .tws-ti-heading{margin-bottom:0} 2631 @media (min-width:1024px){ 2632 .tws-ti-heading{font-size:50px;line-height:56px} 2633 .tws-ti-subtitle{font-size:40px;line-height:46px} 2634 .tws-ti-text{width:66.6667%;padding:40px} 2635 .tws-ti-img{width:33.3333%} 2636 .tws-ti-block.tws-ti-noimg .tws-ti-text{width:100%} 2637 } 2638 </style> 2639 <div class="text-and-image-block tws-ti-block bg-[#ECECEC] flex flex-col items-stretch lg:flex-row gap-[40px]"> 2640 2641 2642 <div class="content-block-section tws-ti-text w-full flex flex-col"> 2643 2644 <h1 class="tws-ti-heading text-[#231F20] mb-[20px] uppercase"> 2645 Training 2646 </h1> 2647 <div class="leading-relaxed wysiwyg-content"> 2648 <h2 class="tws-ti-subtitle font-bold text-[#231F20] mb-[20px]" style="font-weight: 700;"> 2649 Gundog training: expert guides for puppies, handlers and working dogs 2650 </h2> 2651 </div> 2652 <div class="text-gray-600 text-base md:text-lg font-light leading-relaxed wysiwyg-content"> 2653 <p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Good gundog training is built on consistency, timing and understanding how working dogs think. Whether you’re starting a new puppy on its first retrieves or refining steadiness and handling skills ahead of the season, Gundog Journal’
2653s training pages give you expert, practical guidance at every stage.</p> 2654<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Our gundog training guides cover basic obedience, introduction to game, cold game training, water work, whistle commands and advanced fieldwork – with breed-specific advice for Labradors, spaniels, vizslas and all HPR breeds. Every method is rooted in positive, reward-based training from handlers who work dogs in the real world.</p> 2655<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">From first steps to field trial standard, this is the training resource serious gundog owners come back to season after season.</p> 2656 2657 </div> 2658 </div> 2659 2660 2661 <div class="tws-ti-img w-full flex justify-center overflow-hidden"> 2662 <img fetchpriority="high" width="2560" height="1707" src="/app/uploads/sites/2/2025/01/BR-Gundog-Book-Day-2-617-scaled.jpg" alt="Black labrador retrieving dummy" class="w-full h-full object-cover" /> 2663 </div> 2664 </div> 2665 </div> 2666 2667 2668</section> 2669 2670 2671 2672 2673 2674 2675 <!-- Render Content --> 2676<section class="relative lg:mt-[40px] mt-[20px]"> 2677 2678 2679 <div class="container "> 2680 <!-- Block Heading and filter group --> 2681 <div class="mb-6"> 2682 <div class="flex justify-between items-center mb-0"> 2683 <!-- Title with black background (not full width) --> 2684 <div class="block w-full md:w-fit bg-black text-white px-[20px] py-[10px] font-semibold text-[16px] text-left"> 2685 Latest articles 2686 </div> 2687 2688 <!-- Filter Dropdown --> 2689 <div class="self-end hidden md:block ml-4"> 2690 <label for="sort-filter" class="mr-2 font-semibold"></label> 2691 <select class="mb-[4px] h-[34px]" id="sort-filter" x-data="{ sort: 'date-latest' }" x-model="sort" 2692 @change="window.location.href = updateQueryParameter(sort)"> 2693 <option value="date-latest" selected>Latest posts</option> 2694 <option value="date-oldest" >Oldest posts</option> 2695 <option value="title-alphabetical" >A-Z</option> 2696 <option value="title-reverse" >Z-A</option> 2697 </select> 2698 </div> 2699 </div> 2700 <!-- Horizontal rule below title and filter --> 2701 <hr class="hidden md:block border-t-3 border-black mt-0" /> 2702 </div> 2703 2704 <div class="w-full flex gap-[20px] flex-wrap"> 2705 2706 <div class="w-full lg:w-[calc(80%-10px)] relative tws-archive-main"> 2707 2708 <style id="tws-breaking-css">.tws-bs-side{position:relative;border:1px solid #E4E4E4;background:#fff;margin:0 0 30px;transition:border-color .15s}.tws-bs-side:hover{border-color:#C9C9C9}.tws-bs-side-head::after{content:"";position:absolute;inset:0;z-index:1}.tws-bs-cat,.tws-bs-also{position:relative;z-index:2}.tws-bs-side[hidden]{display:none}.tws-bs-text{padding:14px 16px 16px}.tws-bs-side-img{position:relative;display:block;width:100%;aspect-ratio:2/1;overflow:hidden;margin:0}.tws-bs-side-img img{transition:transform .3s ease}.tws-bs-side:hover .tws-bs-side-img img{transform:scale(1.02)}@media (prefers-reduced-motion:reduce){.tws-bs-side-img img{transition:none}.tws-bs-side:hover .tws-bs-side-img img{transform:none}}.tws-bs-side-img img,.tws-bs-side-img picture,.tws-bs-side-img picture img{width:100%!important;height:100%!important;object-fit:cover;display:block}.tws-bs-side-img .tws-flag{text-decoration:none;color:#fff}.tws-bs-meta{font-size:12px;line-height:1.5;color:#767676;margin:0}.tws-bs-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#CE101E;margin-right:7px;vertical-align:middle;animation:tws-bs-pulse 2.4s ease-in-out infinite}@keyframes tws-bs-pulse{0%,100%{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.tws-bs-dot{animation:none}}.tws-bs-also{border-top:1px solid #E4E4E4;padding-top:9px;margin:9px 0 0;font-size:12px;line-height:1.5;color:#767676}.tws-bs-also strong{color:#111}.tws-bs-also a{color:#111;text-decoration:none}.tws-bs-also a:hover{text-decoration:underline}.tws-bs-when{color:#767676}.tws-bs-cat{font-size:12px;color:#767676;text-decoration:none}.tws-bs-side-head,.tws-bs-side-head:hover,.tws-bs-side-head:focus{display:block;margin:7px 0 8px;font-size:16px;font-weight:700;line-height:21px;color:#111;text-decoration:none}.tws-bs-side--mobile{display:none}@media (max-width:1023px){.tws-bs-side--desk{display:none}.tws-bs-side--mobile{display:block}.tws-bs-side--mobile[hidden]{display:none}}</style> 2709<div class="tws-bs-side tws-bs-side--mobile" data-tws-bs hidden></div>
2709<script>(function(){var u="https:\/\/gundog-journal.com\/wp-json\/tws\/v1\/breaking?term=21&paged=1",c="strip";try{fetch(u,{credentials:"omit"}).then(function(r){return r.ok?r.json():null}).then(function(d){if(!d)return;var els=document.querySelectorAll('[data-tws-bs]'),h=d[c];if(!els.length)return;for(var i=0;i<els.length;i++){var el=els[i];if(!h){el.remove();continue;}var t=document.createElement("div");t.innerHTML=h;var n=t.firstElementChild;if(!n){el.remove();continue;}var m=el.className.match(/tws-bs-side--[a-z]+/);if(m){n.classList.add(m[0]);}if(n.outerHTML!==el.outerHTML){el.replaceWith(n);}}}).catch(function(){});}catch(e){}})();</script>
2709 2710 2711 <!-- Posts Grid --> 2712 <ul class="flex flex-col gap-[40px] lg:gap-[10px]"> 2713 <li class="gap-[10px] lg:gap-[15px] flex flex-wrap pb-[10px] border-b border-b-[#F4F4F4]"> 2714 <!-- Featured Image --> 2715 <div 2716 class="relative w-full lg:w-[285px] lg:h-[180px] overflow-hidden aspect-[2/1] lg:aspect-[1.58/1]"> 2717 2718 2719 <a href="https://gundog-journal.com/training/kennelling-gundogs-dos-and-donts/" class="block h-full w-full"> 2720 <img width="1600" height="900" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201600%20900'%3E%3C/svg%3E" alt="Kennelling gundogs: the dos and don&#8217;ts of housing a working dog outdoors" 2721 class="object-cover h-full w-full" data-lazy-src="/app/uploads/sites/2/2026/09/gundog-kennel-runs-with-labradors-and-pointer-v2.jpg" /><noscript><img width="1600" height="900" src="/app/uploads/sites/2/2026/09/gundog-kennel-runs-with-labradors-and-pointer-v2.jpg" alt="Kennelling gundogs: the dos and don&#8217;ts of housing a working dog outdoors" 2722 class="object-cover h-full w-full" /></noscript> 2723 </a> 2724 </div> 2725 <!-- Post Details --> 2726 <div class="flex flex-col gap-[10px] justify-start w-full lg:w-[calc(100%-285px-40px)]"> 2727 2728 <span> 2729 <a class="[&:not(:last-child)]:after:content-[','] [&:not(:last-child)]:after:ml-[-3px] text-[12px] text-[#767676]" 2730 href="https://gundog-journal.com/training/"> 2731 Training </a> 2732 </span> 2733 2734 <!-- Title --> 2735 <a href="https://gundog-journal.com/training/kennelling-gundogs-dos-and-donts/" class="inline-block"> 2736 <h3 class=" text-[16px] font-semibold leading-[21px] m-0 p-0"> 2737 Kennelling gundogs: the dos and don’ts of housing a working dog outdoors </h3> 2738 </a> 2739 2740 2741 <p class="leading-[20px] font-[12px] font-normal"> 2742 We spoke to two top trainers and a kennel builder to find out what the main considerations are when housing your working dog outdoors 2743 </p> 2744 2745 2746 <h6 class="text-[12px] text-[#231F20]"> 2747 By <span class="text-[12px] text-[#231F20]">
2747Gundog Journal</span> 2748 <span class="text-[12px] text-[#231F20]"> | 25 September 2026</span> 2749 </h6> 2750 </div> 2751 </li> 2752 <li class="gap-[10px] lg:gap-[15px] flex flex-wrap pb-[10px] border-b border-b-[#F4F4F4]"> 2753 <!-- Featured Image --> 2754 <div 2755 class="relative w-full lg:w-[285px] lg:h-[180px] overflow-hidden aspect-[2/1] lg:aspect-[1.58/1]"> 2756 2757 2758 <a href="https://gundog-journal.com/training/puppy-training-starts-the-day-you-collect-it/" class="block h-full w-full"> 2759 <img width="1600" height="900" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201600%20900'%3E%3C/svg%3E" alt="Start as you mean to go on: why gundog puppy training begins the day you collect it" 2760 class="object-cover h-full w-full" data-lazy-src="/app/uploads/sites/2/2026/09/ben-randall-handling-cocker-spaniel-puppy-food-bowl-v2.jpg" /><noscript><img width="1600" height="900" src="/app/uploads/sites/2/2026/09/ben-randall-handling-cocker-spaniel-puppy-food-bowl-v2.jpg" alt="Start as you mean to go on: why gundog puppy training begins the day you collect it" 2761 class="object-cover h-full w-full" /></noscript> 2762 </a> 2763 </div> 2764 <!-- Post Details --> 2765 <div class="flex flex-col gap-[10px] justify-start w-full lg:w-[calc(100%-285px-40px)]"> 2766 2767 <span> 2768 <a class="[&:not(:last-child)]:after:content-[','] [&:not(:last-child)]:after:ml-[-3px] text-[12px] text-[#767676]" 2769 href="https://gundog-journal.com/training/"> 2770 Training </a> 2771 </span> 2772 2773 <!-- Title --> 2774 <a href="https://gundog-journal.com/training/puppy-training-starts-the-day-you-collect-it/" class="inline-block"> 2775 <h3 class=" text-[16px] font-semibold leading-[21px] m-0 p-0"> 2776 Start as you mean to go on: why gundog puppy training begins the day you collect it </h3> 2777 </a> 2778 2779 2780 <p class="leading-[20px] font-[12px] font-normal"> 2781 Ben Randall dispels the myth that you should 'let a puppy be a puppy' and explains why training essentially begins as soon as you collect them 2782 </p> 2783 2784 2785 <h6 class="text-[12px] text-[#231F20]"> 2786 By <span class="text-[12px] text-[#231F20]">Ben Randall</span> 2787 <span class="text-[12px] text-[#231F20]"> | 25 September 2026</span> 2788 </h6> 2789 </div> 2790 </li> 2791 <li class="gap-[10px] lg:gap-[15px] flex flex-wrap pb-[10px] border-b border-b-[#F4F4F4]"> 2792 <!-- Featured Image --> 2793 <div 2794 class="relative w-full lg:w-[285px] lg:h-[180px] overflow-hidden aspect-[2/1] lg:aspect-[1.58/1]"> 2795 2796 2797 <a href="https://gundog-journal.com/training/curing-a-gun-shy-dog/" class="block h-full w-full"> 2798 <img width="1600" height="900" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201600%20900'%3E%3C/svg%3E" alt="Gun shy: one dog&#8217;s story, and how a &#8216;hopeless&#8217; labrador was cured" 2799 class="object-cover h-full w-full" data-lazy-src="/app/uploads/sites/2/2026/09/black-labrador-with-pheasants-hanging-on-fence-v2.jpg" /><noscript><img width="1600" height="900" src="/app/uploads/sites/2/2026/09/black-labrador-with-pheasants-hanging-on-fence-v2.jpg" alt="Gun shy: one dog&#8217;s story, and how a &#8216;hopeless&#8217; labrador was cured" 2800 class="object-cover h-full w-full" /></noscript> 2801 </a> 2802 </div> 2803 <!-- Post Details --> 2804 <div class="flex flex-col gap-[10px] justify-start w-full lg:w-[calc(100%-285px-40px)]"> 2805
2806 <span> 2807 <a class="[&:not(:last-child)]:after:content-[','] [&:not(:last-child)]:after:ml-[-3px] text-[12px] text-[#767676]" 2808 href="https://gundog-journal.com/training/"> 2809 Training </a> 2810 </span> 2811 2812 <!-- Title --> 2813 <a href="https://gundog-journal.com/training/curing-a-gun-shy-dog/" class="inline-block"> 2814 <h3 class=" text-[16px] font-semibold leading-[21px] m-0 p-0"> 2815 Gun shy: one dog’s story, and how a ‘hopeless’ labrador was cured </h3> 2816 </a> 2817 2818 2819 <p class="leading-[20px] font-[12px] font-normal"> 2820 Deep in the wilds of Midwest America, journalist and gundog enthusiast Richard Donnelly attempts to do the impossible: cure a gun shy dog 2821 </p> 2822 2823 2824 <h6 class="text-[12px] text-[#231F20]"> 2825 By <span class="text-[12px] text-[#231F20]">Richard Donnelly</span> 2826 <span class="text-[12px] text-[#231F20]"> | 24 September 2026</span> 2827 </h6> 2828 </div> 2829 </li> 2830 <li class="gap-[10px] lg:gap-[15px] flex flex-wrap pb-[10px] border-b border-b-[#F4F4F4]"> 2831 <!-- Featured Image --> 2832 <div 2833 class="relative w-full lg:w-[285px] lg:h-[180px] overflow-hidden aspect-[2/1] lg:aspect-[1.58/1]"> 2834 2835 2836 <a href="https://gundog-journal.com/training/total-recall-why-a-solid-recall-matters/" class="block h-full w-full"> 2837 <img width="1600" height="900" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201600%20900'%3E%3C/svg%3E" alt="Total recall: why a solid recall matters on and off the shooting field" 2838 class="object-cover h-full w-full" data-lazy-src="/app/uploads/sites/2/2026/09/springer-spaniel-jumping-fallen-tree-woodland-recall.jpg" /><noscript><img width="1600" height="900" src="/app/uploads/sites/2/2026/09/springer-spaniel-jumping-fallen-tree-woodland-recall.jpg" alt="Total recall: why a solid recall matters on and off the shooting field" 2839 class="object-cover h-full w-full" /></noscript> 2840 </a> 2841 </div> 2842 <!-- Post Details --> 2843 <div class="flex flex-col gap-[10px] justify-start w-full lg:w-[calc(100%-285px-40px)]"> 2844 2845 <span> 2846 <a class="[&:not(:last-child)]:after:content-[','] [&:not(:last-child)]:after:ml-[-3px] text-[12px] text-[#767676]" 2847 href="https://gundog-journal.com/training/"> 2848 Training </a> 2849 </span> 2850 2851 <!-- Title --> 2852 <a href="https://gundog-journal.com/training/total-recall-why-a-solid-recall-matters/" class="inline-block"> 2853 <h3 class=" text-[16px] font-semibold leading-[21px] m-0 p-0"> 2854 Total recall: why a solid recall matters on and off the shooting field </h3> 2855 </a> 2856 2857 2858 <p class="leading-[20px] font-[12px] font-normal"> 2859 We all know the importance of a solid recall, but it's worth remembering the value of this command both on and off the field, says Maria Teresa Cicognini. She delves deeper into what a 'good' recall s... 2860 </p> 2861 2862 2863 <h6 class="text-[12px] text-[#231F20]"> 2864 By <span class="text-[12px] text-[#231F20]">Maria Teresa Cicognini</span> 2865 <sp
2865an class="text-[12px] text-[#231F20]"> | 23 September 2026</span> 2866 </h6> 2867 </div> 2868 </li> 2869 <li class="gap-[10px] lg:gap-[15px] flex flex-wrap pb-[10px] border-b border-b-[#F4F4F4]"> 2870 <!-- Featured Image --> 2871 <div 2872 class="relative w-full lg:w-[285px] lg:h-[180px] overflow-hidden aspect-[2/1] lg:aspect-[1.58/1]"> 2873 2874 2875 <a href="https://gundog-journal.com/training/flatcoated-retriever-training-day-west-wycombe/" class="block h-full w-full"> 2876 <img width="1600" height="900" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201600%20900'%3E%3C/svg%3E" alt="A day to remember at West Wycombe: a flatcoated retriever training day" 2877 class="object-cover h-full w-full" data-lazy-src="/app/uploads/sites/2/2026/08/jennifer-thomas-flatcoated-retriever-training-day-west-wycombe.jpg" /><noscript><img width="1600" height="900" src="/app/uploads/sites/2/2026/08/jennifer-thomas-flatcoated-retriever-training-day-west-wycombe.jpg" alt="A day to remember at West Wycombe: a flatcoated retriever training day" 2878 class="object-cover h-full w-full" /></noscript> 2879 </a> 2880 </div> 2881 <!-- Post Details --> 2882 <div class="flex flex-col gap-[10px] justify-start w-full lg:w-[calc(100%-285px-40px)]"> 2883 2884 <span> 2885 <a class="[&:not(:last-child)]:after:content-[','] [&:not(:last-child)]:after:ml-[-3px] text-[12px] text-[#767676]" 2886 href="https://gundog-journal.com/training/"> 2887 Training </a> 2888 </span> 2889 2890 <!-- Title --> 2891 <a href="https://gundog-journal.com/training/flatcoated-retriever-training-day-west-wycombe/" class="inline-block"> 2892 <h3 class=" text-[16px] font-semibold leading-[21px] m-0 p-0"> 2893 A day to remember at West Wycombe: a flatcoated retriever training day </h3> 2894 </a> 2895 2896 2897 <p class="leading-[20px] font-[12px] font-normal"> 2898 Jennifer Thomas reports on a flatcoated retriever training day that brought a Swedish handler and his dog all the way to Buckinghamshire 2899 </p> 2900 2901 2902 <h6 class="text-[12px] text-[#231F20]"> 2903 By <span class="text-[12px] text-[#231F20]">Jennifer Thomas</span> 2904 <span class="text-[12px] text-[#231F20]"> | 7 September 2026</span> 2905 </h6> 2906 </div> 2907 </li> 2908 <li class="gap-[10px] lg:gap-[15px] flex flex-wrap pb-[10px] border-b border-b-[#F4F4F4]"> 2909 <!-- Featured Image --> 2910 <div 2911 class="relative w-full lg:w-[285px] lg:h-[180px] overflow-hidden aspect-[2/1] lg:aspect-[1.58/1]"> 2912 2913 2914 <a href="https://gundog-journal.com/training/gund
2914og-ready-for-shooting-season/" class="block h-full w-full"> 2915 <img width="1600" height="900" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201600%20900'%3E%3C/svg%3E" alt="Is your gundog ready for the season?" 2916 class="object-cover h-full w-full" data-lazy-src="/app/uploads/sites/2/2026/08/gundog-first-day-shooting-season-gun-labrador-peg.jpg" /><noscript><img width="1600" height="900" src="/app/uploads/sites/2/2026/08/gundog-first-day-shooting-season-gun-labrador-peg.jpg" alt="Is your gundog ready for the season?" 2917 class="object-cover h-full w-full" /></noscript> 2918 </a> 2919 </div> 2920 <!-- Post Details --> 2921 <div class="flex flex-col gap-[10px] justify-start w-full lg:w-[calc(100%-285px-40px)]"> 2922 2923 <span> 2924 <a class="[&:not(:last-child)]:after:content-[','] [&:not(:last-child)]:after:ml-[-3px] text-[12px] text-[#767676]" 2925 href="https://gundog-journal.com/training/"> 2926 Training </a> 2927 </span> 2928 2929 <!-- Title --> 2930 <a href="https://gundog-journal.com/training/gundog-ready-for-shooting-season/" class="inline-block"> 2931 <h3 class=" text-[16px] font-semibold leading-[21px] m-0 p-0"> 2932 Is your gundog ready for the season? </h3> 2933 </a> 2934 2935 2936 <p class="leading-[20px] font-[12px] font-normal"> 2937 Ben Randall explains the areas to critique on your dogâs first day in the field this season and why, ideally, an honest appraisal should be taken before that point 2938 </p> 2939 2940 2941 <h6 class="text-[12px] text-[#231F20]"> 2942 By <span class="text-[12px] text-[#231F20]">Ben Randall</span> 2943 <span class="text-[12px] text-[#231F20]"> | 2 September 2026</span> 2944 </h6> 2945 </div> 2946 </li> 2947 <li class="gap-[10px] lg:gap-[15px] flex flex-wrap pb-[10px] border-b border-b-[#F4F4F4]"> 2948 <!-- Featured Image --> 2949 <div 2950 class="relative w-full lg:w-[285px] lg:h-[180px] overflow-hidden aspect-[2/1] lg:aspect-[1.58/1]"> 2951 2952 2953 <a href="https://gundog-journal.com/training/glorious-twelfth-forty-years-dogs-on-the-moor/" class="block h-full w-full"> 2954 <img width="1800" height="1197" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201800%201197'%3E%3C/svg%3E" alt="Glorious or what? Forty years of Twelfths and the dogs that made them" 2955 class="object-cover h-full w-full" data-lazy-src="/app/uploads/sites/2/2026/08/glorious-twelfth-grouse-butt-loader-on-the-hill.jpg" /><noscript><img width="1800" height="1197" src="/app/uploads/sites/2/2026/08/glorious-twelfth-grouse-butt-loader-on-the-hill.jpg" alt="Glorious or what? Forty years of Twelfths and the dogs that made them" 2956 class="object-cover h-full w-full" /></noscript> 2957 </a> 2958 </div> 2959 <!-- Post Details --> 2960 <div class="flex flex-col gap-[10px] justify-start w-full lg:w-[calc(100%-285px-40px)]"> 2961
2962 <span> 2963 <a class="[&:not(:last-child)]:after:content-[','] [&:not(:last-child)]:after:ml-[-3px] text-[12px] text-[#767676]" 2964 href="https://gundog-journal.com/training/"> 2965 Training </a> 2966 </span> 2967 2968 <!-- Title --> 2969 <a href="https://gundog-journal.com/training/glorious-twelfth-forty-years-dogs-on-the-moor/" class="inline-block"> 2970 <h3 class=" text-[16px] font-semibold leading-[21px] m-0 p-0"> 2971 Glorious or what? Forty years of Twelfths and the dogs that made them </h3> 2972 </a> 2973 2974 2975 <p class="leading-[20px] font-[12px] font-normal"> 2976 David Hudson turns back through more than 40 years of gamebooks â the midges, the mist, and the dogs that made or broke the day 2977 </p> 2978 2979 2980 <h6 class="text-[12px] text-[#231F20]"> 2981 By <span class="text-[12px] text-[#231F20]">David Hudson</span> 2982 <span class="text-[12px] text-[#231F20]"> | 13 August 2026</span> 2983 </h6> 2984 </div> 2985 </li> 2986 <li class="gap-[10px] lg:gap-[15px] flex flex-wrap pb-[10px] border-b border-b-[#F4F4F4]"> 2987 <!-- Featured Image --> 2988 <div 2989 class="relative w-full lg:w-[285px] lg:h-[180px] overflow-hidden aspect-[2/1] lg:aspect-[1.58/1]"> 2990 2991 2992 <a href="https://gundog-journal.com/training/how-to-make-a-gundog-stock-proof/" class="block h-full w-full"> 2993 <img width="1200" height="848" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20848'%3E%3C/svg%3E" alt="How to make a gundog stock-proof around sheep and cattle" 2994 class="object-cover h-full w-full" data-lazy-src="/app/uploads/sites/2/2026/07/stock-proof-gundog-springer-meeting-a-ram.jpg" /><noscript><img width="1200" height="848" src="/app/uploads/sites/2/2026/07/stock-proof-gundog-springer-meeting-a-ram.jpg" alt="How to make a gundog stock-proof around sheep and cattle" 2995 class="object-cover h-full w-full" /></noscript> 2996 </a> 2997 </div> 2998 <!-- Post Details --> 2999 <div class="flex flex-col gap-[10px] justify-start w-full lg:w-[calc(100%-285px-40px)]"> 3000 3001 <span> 3002 <a class="[&:not(:last-child)]:after:content-[','] [&:not(:last-child)]:after:ml-[-3px] text-[12px] text-[#767676]" 3003 href="https://gundog-journal.com/training/"> 3004 Training </a> 3005 </span> 3006 3007 <!-- Title --> 3008 <a href="https://gundog-journal.com/training/h
3008ow-to-make-a-gundog-stock-proof/" class="inline-block"> 3009 <h3 class=" text-[16px] font-semibold leading-[21px] m-0 p-0"> 3010 How to make a gundog stock-proof around sheep and cattle </h3> 3011 </a> 3012 3013 3014 <p class="leading-[20px] font-[12px] font-normal"> 3015 A dog that chases sheep can cost a farmer thousands, land you with an unlimited fine and, in the worst case, cost the dog its life. Here is how to introduce a young gundog to livestock properly, and h... 3016 </p> 3017 3018 3019 <h6 class="text-[12px] text-[#231F20]"> 3020 By <span class="text-[12px] text-[#231F20]">
3020Gundog Journal</span> 3021 <span class="text-[12px] text-[#231F20]"> | 5 August 2026</span> 3022 </h6> 3023 </div> 3024 </li> 3025 <li class="gap-[10px] lg:gap-[15px] flex flex-wrap pb-[10px] border-b border-b-[#F4F4F4]"> 3026 <!-- Featured Image --> 3027 <div 3028 class="relative w-full lg:w-[285px] lg:h-[180px] overflow-hidden aspect-[2/1] lg:aspect-[1.58/1]"> 3029 3030 3031 <a href="https://gundog-journal.com/training/how-to-introduce-a-puppy-to-gunfire/" class="block h-full w-full"> 3032 <img width="1499" height="999" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201499%20999'%3E%3C/svg%3E" alt="How to introduce a puppy to gunfire â a step-by-step guide" 3033 class="object-cover h-full w-full" data-lazy-src="/app/uploads/sites/2/2026/07/introducing-a-gundog-puppy-to-gunfire-labrador.jpg" /><noscript><img width="1499" height="999" src="/app/uploads/sites/2/2026/07/introducing-a-gundog-puppy-to-gunfire-labrador.jpg" alt="How to introduce a puppy to gunfire â a step-by-step guide" 3034 class="object-cover h-full w-full" /></noscript> 3035 </a> 3036 </div> 3037 <!-- Post Details --> 3038 <div class="flex flex-col gap-[10px] justify-start w-full lg:w-[calc(100%-285px-40px)]"> 3039 3040 <span> 3041 <a class="[&:not(:last-child)]:after:content-[','] [&:not(:last-child)]:after:ml-[-3px] text-[12px] text-[#767676]" 3042 href="https://gundog-journal.com/training/"> 3043 Training </a> 3044 </span> 3045 3046 <!-- Title --> 3047 <a href="https://gundog-journal.com/training/how-to-introduce-a-puppy-to-gunfire/" class="inline-block"> 3048 <h3 class=" text-[16px] font-semibold leading-[21px] m-0 p-0"> 3049 How to introduce a puppy to gunfire â a step-by-step guide </h3> 3050 </a> 3051 3052 3053 <p class="leading-[20px] font-[12px] font-normal"> 3054 Nothing worries a first-time gundog owner more than the first shot fired near their puppy, and rushing it is the one mistake that cannot easily be undone. Here is how to build a young dog up to gunfir... 3055 </p> 3056 3057 3058 <h6 class="text-[12px] text-[#231F20]"> 3059 By <span class="text-[12px] text-[#231F20]">
3059Gundog Journal</span> 3060 <span class="text-[12px] text-[#231F20]"> | 5 August 2026</span> 3061 </h6> 3062 </div> 3063 </li> 3064 <li class="gap-[10px] lg:gap-[15px] flex flex-wrap pb-[10px] border-b border-b-[#F4F4F4]"> 3065 <!-- Featured Image --> 3066 <div 3067 class="relative w-full lg:w-[285px] lg:h-[180px] overflow-hidden aspect-[2/1] lg:aspect-[1.58/1]"> 3068 3069 3070 <a href="https://gundog-journal.com/training/how-to-train-a-gundog-to-the-whistle/" class="block h-full w-full"> 3071 <img width="1200" height="800" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%20800'%3E%3C/svg%3E" alt="How to train a gundog to the whistle â a step-by-step guide" 3072 class="object-cover h-full w-full" data-lazy-src="/app/uploads/sites/2/2026/07/gundog-whistle-training-handler-working-cocker.jpg" /><noscript><img width="1200" height="800" src="/app/uploads/sites/2/2026/07/gundog-whistle-training-handler-working-cocker.jpg" alt="How to train a gundog to the whistle â a step-by-step guide" 3073 class="object-cover h-full w-full" /></noscript> 3074 </a> 3075 </div> 3076 <!-- Post Details --> 3077 <div class="flex flex-col gap-[10px] justify-start w-full lg:w-[calc(100%-285px-40px)]"> 3078 3079 <span> 3080 <a class="[&:not(:last-child)]:after:content-[','] [&:not(:last-child)]:after:ml-[-3px] text-[12px] text-[#767676]" 3081 href="https://gundog-journal.com/training/"> 3082 Training </a> 3083 </span> 3084 3085 <!-- Title --> 3086 <a href="https://gundog-journal.com/training/how-to-train-a-gundog-to-the-whistle/" class="inline-block"> 3087 <h3 class=" text-[16px] font-semibold leading-[21px] m-0 p-0"> 3088 How to train a gundog to the whistle â a step-by-step guide </h3> 3089 </a> 3090 3091 3092 <p class="leading-[20px] font-[12px] font-normal"> 3093 The whistle is the one piece of kit that gives you control of a dog at distance, and every command it carries has to be taught rather than assumed. Here is how to build the stop, the recall and the tu... 3094 </p> 3095 3096 3097 <h6 class="text-[12px] text-[#231F20]"> 3098 By <span class="text-[12px] text-[#231F20]">
3098Gundog Journal</span> 3099 <span class="text-[12px] text-[#231F20]"> | 5 August 2026</span> 3100 </h6> 3101 </div> 3102 </li> 3103 </ul> 3104 3105 <div 3106 class="posts-pagination w-full mt-[40px] mb-[40px] align-center justify-start gap-[10px] text-[20px] flex"> 3107 <span aria-current="page" class="page-numbers current">1</span> 3108<a class="page-numbers" href="https://gundog-journal.com/training/page/2/">2</a> 3109<a class="page-numbers" href="https://gundog-journal.com/training/page/3/">3</a> 3110<span class="page-numbers dots">…</span> 3111<a class="page-numbers" href="https://gundog-journal.com/training/page/13/">13</a> 3112<a class="next page-numbers" href="https://gundog-journal.com/training/page/2/"><span aria-hidden="true">></span></a> </div> 3113 </div> 3114 3115 <div class="flex flex-col w-full lg:w-[calc(20%-10px)] paginated-posts-ads-container"> 3116 3117 <style id="tws-promo-css"> 3118.tws-promo{display:block;position:relative;margin:32px 0;border-top:4px solid #4DC48D;background:linear-gradient(135deg,#068363 0%,#04523E 100%);color:#fff;border-radius:2px;transition:transform .18s ease,box-shadow .18s ease} 3119.tws-promo,.tws-promo *{box-sizing:border-box} 3120.tws-promo--urgent{border-top-width:7px;border-top-color:#F2B233} 3121.tws-promo-btn::after{content:"";position:absolute;inset:0;z-index:1} 3122.tws-promo:hover,.tws-promo:focus-within{transform:translateY(-2px);box-shadow:0 8px 24px rgba(4,82,62,.35),0 2px 6px rgba(0,0,0,.12)} 3123@media (prefers-reduced-motion:reduce){.tws-promo{transition:none}.tws-promo:hover,.tws-promo:focus-within{transform:none}} 3124.tws-promo--home{margin:0} 3125.tws-promo.tws-promo--end{margin:8px 0 20px} 3126.wysiwyg-content > :has(~ .tws-promo--end) .related-articles p:last-child{margin-bottom:0} 3127.tws-promo--end + .twsnl-wrap .twsnl{margin-top:0 !important} 3128.tws-about-author:has(~ .tws-promo--end){margin-bottom:0} 3129.tws-about-author ~ .tws-promo.tws-promo--end{margin-top:20px} 3130.tws-promo--shortcode{margin:20px 0 0} 3131@media (min-width:1024px){.tws-promo--shortcode{margin-top:40px}} 3132.tws-promo--shortcode.tws-promo--side{display:block} 3133.tws-promo-inner{display:flex;flex-direction:column;gap:14px;padding:18px 20px} 3134.tws-promo-text{display:flex;flex-direction:column;gap:6px;min-width:0} 3135.tws-promo-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px} 3136.tws-promo-chip{display:inline-block;padding:4px 10px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);border-radius:99px;font-size:13px;line-height:1.2;font-weight:600;white-space:nowrap;color:#fff} 3137.tws-promo--urgent .tws-promo-chip{background:#F2B233;border-color:#F2B233;color:#1d1d1b} 3138.tws-promo-kicker{font-size:12px;line-height:1.3;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#D9F3E7} 3139.tws-promo-closes{white-space:nowrap} 3140#app .tws-promo .tws-promo-headline,.tws-promo .tws-promo-headline{font-family:'Montserrat', Arial, sans-serif !important;font-size:26px;line-height:1.15;font-weight:700;color:#fff} 3141.tws-promo-line{font-size:16px;line-height:1.4;color:#EAF7F1} 3142.tws-promo-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px} 3143.tws-promo a.tws-promo-btn{position:static;display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 24px;background:#fff;color:#04523E !important;font-size:16px;line-height:1.15;font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-align:center;text-decoration:none !important;border-radius:0;transition:background .15s,color .15s} 3144.tws-promo:hover a.tws-promo-btn,.tws-promo a.tws-promo-btn:focus{background:#4DC48D;color:#06281F !important} 3145.tws-promo-note{font-size:13px;line-height:1.3;text-align:center;color:#D9F3E7} 3146.tws-promo--side{margin:0 0 30px;display:none} 3147@media (min-width:1024px){.tws-promo--side{display:block}} 3148#app .tws-promo--side .tws-promo-headline,.tws-promo--side .tws-promo-headline{font-size:22px} 3149.tws-promo--slim .tws-promo-inner{gap:12px;padding:14px 18px} 3150.tws-promo--slim .tws-promo-note{display:none} 3151#app .tws-promo--slim .tws-promo-headline,.tws-promo--slim .tws-promo-headline{font-size:20px;line-height:1.2}
3152@media (min-width:900px){ 3153 .tws-promo--wide .tws-promo-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px;padding:22px 28px} 3154 #app .tws-promo--wide .tws-promo-headline,.tws-promo--wide .tws-promo-headline{font-size:30px} 3155 .tws-promo--wide a.tws-promo-btn{min-height:48px;padding:12px 28px;white-space:nowrap} 3156 .tws-promo--slim .tws-promo-inner{gap:24px;padding:14px 22px} 3157 #app .tws-promo--slim .tws-promo-headline,.tws-promo--slim .tws-promo-headline{font-size:21px} 3158 .tws-promo--slim .tws-promo-text{gap:4px} 3159 .tws-promo--slim .tws-promo-line{font-size:15px;line-height:1.35} 3160 .tws-promo--slim a.tws-promo-btn{min-height:44px;padding:10px 20px} 3161} 3162</style>
3163<script id="tws-promo-js"> 3164(function(){ 3165 var AJAX='/wp-admin/admin-ajax.php'; 3166 function days(closes){ 3167 var p=closes.split('-');if(p.length!==3)return null; 3168 var now=new Date(),t=Date.UTC(now.getFullYear(),now.getMonth(),now.getDate()),c=Date.UTC(+p[0],+p[1]-1,+p[2]); 3169 return Math.round((c-t)/864e5); 3170 } 3171 function go(){ 3172 document.querySelectorAll('[data-tws-promo]').forEach(function(el){ 3173 var d=days(el.getAttribute('data-closes')||''); 3174 if(d===null)return; 3175 if(d<0&&!el.hasAttribute('data-preview')){var band=el.closest('.tws-promo-band');(band||el).remove();return;} 3176 el.querySelectorAll('[data-tws-promo-chip]').forEach(function(chip){chip.textContent=d<=0?'Closes today':(d===1?'Closes tomorrow':d+' days left');}); 3177 el.classList.toggle('tws-promo--urgent',d<=14); 3178 if(el.hasAttribute('data-preview'))return; 3179 var place=el.getAttribute('data-tws-promo'); 3180 function hit(what){ 3181 try{var f=new FormData();f.append('action','tws_promo_click');f.append('p',what); 3182 if(navigator.sendBeacon){navigator.sendBeacon(AJAX,f);}else{fetch(AJAX,{method:'POST',body:f,keepalive:true,credentials:'omit'});} 3183 }catch(e){} 3184 } 3185 var sent=false; 3186 el.addEventListener('click',function(e){ 3187 if(!sent&&e.target.closest('[data-tws-promo-go]')){sent=true;hit(place);} 3188 }); 3189 el.addEventListener('auxclick',function(e){if(e.button===1&&!sent&&e.target.closest('[data-tws-promo-go]')){sent=true;hit(place);}}); 3190 }); 3191 } 3192 if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',go);}else{go();} 3193})(); 3194</script>
3194 3195<aside class="tws-promo tws-promo--side tws-promo--archive" data-tws-promo="archive" data-closes="2026-11-01" aria-label="Defra call for evidence"><div class="tws-promo-inner"><div class="tws-promo-text"><span class="tws-promo-meta"><span class="tws-promo-kicker">Help shape the future of shooting â Respond today <span class="tws-promo-closes">â closes 1 November</span></span><span class="tws-promo-chip" data-tws-promo-chip>30 days left</span></span><span class="tws-promo-headline">Defra call for evidence</span><span class="tws-promo-line">Beating, picking up, working your dog â the government wants evidence from people who are there.</span></div><div class="tws-promo-actions"><a class="tws-promo-btn" href="https://basc.org.uk/thevoiceofshooting/?utm_source=gundog-journal&utm_medium=website&utm_campaign=defra-call-for-evidence&utm_content=archive" target="_blank" rel="noopener" data-tws-promo-go>Have your say</a><span class="tws-promo-note">Respond through BASCâs guide</span></div></div></aside><style id="tws-bss-css"> 3196.tws-bss{display:block;position:relative;margin:32px 0;padding:0;border:1px solid #04203F;border-top:4px solid #D71F2A;background:linear-gradient(180deg,#0B2E62,#04203F);border-radius:2px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease} 3197/* the whole card is the click target: the button's ::after is stretched over the card, so the 3198 button stays the one real link (better for readers and for search than a block-level anchor) */ 3199.tws-bss-btn::after{content:"";position:absolute;inset:0;z-index:1} 3200.tws-bss-secondary{position:relative;z-index:2} 3201.tws-bss:hover,.tws-bss:focus-within{transform:translateY(-2px);box-shadow:0 8px 24px rgba(4,32,63,.35),0 2px 6px rgba(0,0,0,.12)} 3202.tws-bss:hover .tws-bss-btn,.tws-bss:focus-within .tws-bss-btn{background:#D71F2A;color:#fff !important} 3203@media (prefers-reduced-motion:reduce){.tws-bss{transition:none}.tws-bss:hover,.tws-bss:focus-within{transform:none}} 3204.tws-bss--home{margin:0} 3205.tws-bss--shortcode{margin:20px 0 0} 3206@media (min-width:1024px){.tws-bss--shortcode{margin-top:40px}} 3207.tws-bss--shortcode.tws-bss--sidebar{display:block} 3208.tws-bss-inner{display:flex;flex-direction:column;gap:14px;padding:18px 18px 20px} 3209.tws-bss-logo{display:block;width:64px;height:64px;flex-shrink:0;border-radius:3px} 3210.tws-bss-text{min-width:0;flex:1} 3211.tws-bss .tws-bss-kicker{margin:0 0 6px !important;padding:0 !important;border:0;font-size:12px;line-height:1.3;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#9DC1FF} 3212.tws-bss .tws-bss-line{margin:0 !important;padding:0 !important;border:0;font-size:17px !important;line-height:1.3 !important;font-weight:700;letter-spacing:-.01em;color:#fff;text-wrap:pretty} 3213.tws-bss-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;flex-shrink:0} 3214.tws-bss-btn{position:static;display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:15px 26px;background:#FDC825;color:#04203F !important;font-size:17px;line-height:1.15;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:center;text-decoration:none !important;border-radius:0;transition:background .15s,color .15s} 3215.tws-bss-btn:hover,.tws-bss-btn:focus{background:#D71F2A;color:#fff !important} 3216.tws-bss-secondary{font-size:16px;font-weight:600;color:#fff !important;text-decoration:underline;text-underline-offset:3px} 3217.tws-bss-secondary:hover{color:#9DC1FF !important} 3218.tws-bss-secondary[hidden]{display:none} 3219.tws-bss--countdown{border-top-width:6px} 3220/* the kicker is date + venue: stacked on phones and in the sidebar, one line on desktop */ 3221.tws-bss-venue{display:block} 3222/* phones: logo with the date and venue beside it, line beneath, full-width button */ 3223@media (max-width:767px){ 3224 .tws-bss--article .tws-bss-inner,.tws-bss--home .tws-bss-inner{display:grid;grid-template-columns:84px minmax(0,1fr);grid-template-areas:"logo kicker" "line line" "actions actions";align-items:center;column-gap:16px;row-gap:14px;padding:18px} 3225 .tws-bss--article .tws-bss-text,.tws-bss--home .tws-bss-text{display:contents} 3226 .tws-bss--article .tws-bss-logo,.tws-bss--home .tws-bss-logo{grid-area:logo;width:84px;height:84px} 3227 .tws-bss--article .tws-bss-kicker,.tws-bss--home .tws-bss-kicker{grid-area:kicker;margin:0 !important;font-size:14px !important;line-height:1.4 !important;text-align:right} 3228 .tws-bss--article .tws-bss-line,.tws-bss--home .tws-bss-line{grid-area:line} 3229 .tws-bss--article .tws-bss-actions,.tws-bss--home .tws-bss-actions{grid-area:actions;display:block} 3230 .tws-bss--article .tws-bss-btn,.tws-bss--home .tws-bss-btn{display:flex;width:100%} 3231 .tws-bss--article .tws-bss-secondary:not([hidden]),.tws-bss--home .tws-bss-secondary:not([hidden]){display:inline-block;margin-top:10px} 3232} 3233/* sidebar: logo with the date beside it, line beneath, full-width button */ 3234.tws-bss--sidebar{margin:0 0 30px;
3234display:none} 3235@media (min-width:1024px){.tws-bss--sidebar{display:block}} 3236.tws-bss--sidebar .tws-bss-inner{display:grid;grid-template-columns:72px minmax(0,1fr);grid-template-areas:"logo kicker" "line line" "actions actions";align-items:center;column-gap:14px;row-gap:14px;padding:18px} 3237.tws-bss--sidebar .tws-bss-text{display:contents} 3238.tws-bss--sidebar .tws-bss-logo{grid-area:logo;width:72px;height:72px} 3239.tws-bss--sidebar .tws-bss-kicker{grid-area:kicker;margin:0 !important;font-size:14px !important;line-height:1.4 !important;text-align:right} 3240.tws-bss--sidebar .tws-bss-line{grid-area:line;font-size:15px !important;line-height:1.35 !important;letter-spacing:0} 3241.tws-bss--sidebar .tws-bss-actions{grid-area:actions;display:block} 3242.tws-bss--sidebar .tws-bss-btn{display:flex;width:100%;min-height:50px;padding:14px 16px} 3243.tws-bss--sidebar .tws-bss-secondary:not([hidden]){display:inline-block;margin-top:10px} 3244@media (min-width:768px){ 3245 .tws-bss--article .tws-bss-inner,.tws-bss--home .tws-bss-inner{flex-direction:row;align-items:center;justify-content:space-between;gap:24px;padding:20px 26px} 3246 .tws-bss--article .tws-bss-logo,.tws-bss--home .tws-bss-logo{width:96px;height:96px} 3247 .tws-bss--article .tws-bss-kicker,.tws-bss--home .tws-bss-kicker{white-space:nowrap;overflow:hidden;text-overflow:ellipsis} 3248 .tws-bss--article .tws-bss-venue,.tws-bss--home .tws-bss-venue{display:inline} 3249 .tws-bss--article .tws-bss-venue::before,.tws-bss--home .tws-bss-venue::before{content:", "} 3250 .tws-bss--article .tws-bss-line,.tws-bss--home .tws-bss-line{font-size:20px !important} 3251 .tws-bss--article .tws-bss-btn,.tws-bss--home .tws-bss-btn{width:150px;min-height:96px;padding:14px 20px;font-size:18px;line-height:1.2} 3252 .tws-bss--article .tws-bss-actions,.tws-bss--home .tws-bss-actions{flex-direction:column;align-items:stretch;gap:8px} 3253} 3254</style>
3255<script id="tws-bss-js"> 3256(function(){ 3257 function go(){ 3258 var els=document.querySelectorAll('[data-tws-bss]'); 3259 if(!els.length||!window.fetch)return; 3260 els.forEach(function(el){ 3261 var src=el.getAttribute('data-tws-bss-src');if(!src)return; 3262 fetch(src,{credentials:'omit'}).then(function(r){return r.ok?r.json():null}).then(function(d){ 3263 if(!d)return; 3264 if(d.active===false){el.remove();return;} 3265 var q=function(s){return el.querySelector(s)}; 3266 var k=q('[data-tws-bss-kicker]'),l=q('[data-tws-bss-line]'),b=q('[data-tws-bss-btn]'),s=q('[data-tws-bss-secondary]'); 3267 if(k&&typeof d.kicker==='string'){var kk=d.kicker.replace(/^\s*(?:the\s+)?(?:great\s+)?british\s+shooting\s+show\s*[,:\-\u2013]?\s*/i,'').replace(/(\d{1,2})\s+to\s+(\d{1,2}\s+[A-Za-z])/,'$1\u2013$2').trim();k.textContent='';if(kk.indexOf(',')>-1){var i=kk.indexOf(','),d=document.createElement('span'),v=document.createElement('span');d.className='tws-bss-date';d.textContent=kk.slice(0,i).trim();v.className='tws-bss-venue';v.textContent=kk.slice(i+1).trim();k.appendChild(d);k.appendChild(v);}else{k.textContent=kk;}} 3268 if(l&&typeof d.line==='string'&&d.line){var ln=d.line.trim(),w=ln.split(' ').length;l.textContent=w<3?ln:ln.replace(w>=6?/ (?=(?:\S+ ){0,1}\S+$)/g:/ (?=\S+$)/,'\u00a0');} 3269 if(b&&typeof d.url==='string'&&/^https?:\/\//.test(d.url)){b.href=d.url;if(d.button_label)b.textContent=d.button_label;} 3270 if(s){if(d.secondary_url&&d.secondary_label&&/^https?:\/\//.test(d.secondary_url)){s.href=d.secondary_url;s.textContent=d.secondary_label;s.hidden=false;}else{s.hidden=true;}} 3271 el.className=el.className.replace(/\btws-bss--(calm|ask|countdown)\b/,'tws-bss--'+(['calm','ask','countdown'].indexOf(d.intensity)>-1?d.intensity:'calm')); 3272 }).catch(function(){}); 3273 }); 3274 } 3275 if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',go);}else{go();} 3276})(); 3277</script>
3277 3278<aside class="tws-bss tws-bss--archive tws-bss--sidebar tws-bss--ask" data-tws-bss="article" data-tws-bss-src="https://engine.twsgroup.com/api/bss/cta?title=gundog-journal&position=article&section=training" aria-label="British Shooting Show tickets"><div class="tws-bss-inner"><img class="tws-bss-logo" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20144%20144'%3E%3C/svg%3E" width="144" height="144" alt="The Great British Shooting Show" decoding="async" data-lazy-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAMAAADQmBKKAAABgFBMVEXVrU+vnFj+yir30FqTqcvXl5z/zycZK1udFBv95J76q1IpWZr+vhdYeKaPj5rSCBzeZGzt49pgFCbgfIL/xyIcQXVni8EGOoX3tTX/eQD/9lX/AADqVjDqvsGtZ27crCj/0y8SBiFQL0pIeMPUJED/uxUAAH8AAP9/fz9/f3+qf1W5fYSZmWayxeX//7////8FJU/6+/vWHSkCGjvt7O0ELGQJMm4AGkgdVabXISwFID7/2i4iV6YAAAEQTKW2lznVER2GlqotSW3CytUWM1a6xNKVpLasuMrbSVJne5NOaInU2uNzhZhyialQY3o6UnBEWXWlq7fO09vs19gACS7Bnjjqx8k0VoZacpDc4ejnpqr7xTRYgLpPebbPslcVSZU1Zq39vjuRqMr//wDjiI7ZOkTklZp3lsbCoDvhdHrotbn/1Sb+22/+ySrganH/wxktJk/YMjvdXGT9mjf/1B5CXoTbU1skO1grQl2stLz+oTh8kayLEhfBrGH/0yf/1STFdU2kAAAAgHRSTlP//x3///+e/v//A/6A///8//7//2b//v78AgMB////B8b///z6ZQIBBAQG/wX7BAL//v7+/v7//v7+/4P+AP7+///////////+/v////////////7+//////7+8v/+////B/8B//7+/v///nP/1P+E///+/oD///////////8vTx0m+wwAABQeSURBVHjazZuJW9vGtsAdIJAmhYSSpOl+b+/29idhWWMc6iDZkmzZxtjwwCYhEIflQlIS6C1L8276r79zZtOMLIHI0teT7yuylpmfzj5jN/fsxfjD342M332Wu/v40e9IHt/NPXy0kv/dyMqjh7kXj/Kl343k//4CNJQvvc9LJY77rmPl/+fhuwNleN/fDEid1RiWd4aKAcmxS/yj/le5nkaSBKYPyl5HHomLiUAllTQRX0h8Yu1s/Kah50vysHShhkp5Y5HLGZ4xlhbbdGD+t5Q/5ZfbMSJ4sNlcNBiDGMXlSPIpV7736aKY8UzMaIgzGlDb5OKvgIKrptmgmKbZp9pdafLLXR0o37TwrNVkn5b4XZVTept8qpJnVjNWfJPNj0dc3GxAXQpkwV/0hXwyUL4jHmvmVSCzYRCKqwBRL4eBmytGFiBQtgMPLoZnefZcF5wuXwWgkgDqLPbC3lJe0w8iNuu+GUgNeUuLi13T7OX5dR+eCtHQOMwKzGEZzJPOwsWKaU4lmwz/u9JG9eAhA1pZya+UKBAfuvfHFTin8BCwqNnBx10jL4BgiJXQNB0BtKg8hRoXKsIZQUnuSmrY42gdamsKZE1NTTUdVL7QhTflOE3NYCG+LzFIfiUvgQKjehqYZl0ABfBUXdUoVxHOCAYHjackxhIHynOgyBsM1RuMmMWCvEFcjCMifMiyhp6yIgU1fApLPZwBld4LqJEAlAeF4F/FqT0WZeKpLr+/jjAYwKV3AGqcnblnbRXIOXXdMw1oESar5okG5C3Rk9pTp/yBPrgU2jOk01wRqEtfwlKA6isxpzbQRysweagAdTCSOhFQKJ9CBcncAaGcHchgQBBGVRXIc0DqRFVRD4c/dzwF6BxzBeQW7SmaBEhD+sEiEmUGKkmgvAbEnIhoRmuJKSIN5SmG5kOYGGlMQpJaWqqzz5mAfJpRIyDM1Iam7grRS8dShYaRT6OMtOkQaMmlvAqEuPmKyDqgUFoS8z4elFL7IePsrJrnPcPp2Smd+VQ6pMukGi/2xF1agrxIxF1VtLS8T33qzD0Vd53RRJqvnp0ZlzRooocRLYRsJYiQocZHO8mOozPqU9FYyujpHWOmrutjSOmyFpbE3j5FMRmFJIwY6+5KyUCGUaViGEpXWJViGMq47IR2vaqdi6avLoWL7Wo0pHoVHKkK/2R919qPM4uJaTU6S3zufGjRwgRRZFpdxxUu4EO9siAhkSa/zO6xrDac6/CL9M5Fj10KFgnPAziiIwYyujjyKSttGpARNWg0So1YauVNGJ+GRjqMSnz9uhkCUBcPWvR54kSXKm3CAx1zJ1dQlTdo1I9iQK42ciz5CHEoEfH4sTqhBKpI9NhlzFR5eqojNFS1BFDpYg2J/ioOZC4RDchPA2rBfUR/R5rxmYYiIKmhUkkDKgmg4Py8zzsYIoCsDko3ytMRUK/iVSr8CojnakBMQU13yUFFyNycBEQ77gQgCyMskHcxIG+F5CFW2fATRAGiCZDwJ3k8K0ABXzOAPzvckVOBDBWIVq+26Ox4k+VKDYnqRe3d1oDoqPR+S8RyHMhjbscv60CGAmRoQIYEIgZ26LAai5y6YrwjENOpTxdERAXyRWNvWBGQIYHYqkICubRr6UVODSYD4Wu+qpEdiMdJv1mVyZkBeZAsqfQUDcFFAWRIILPRaERBxoEadRQWUAHJDqQEIWtOJFBMZMJNAOI5dzGfnIdM9ypAhuHJB/mJTEDGEFA/ZDYfAgr1xHgpkOEoyT8rkDEMBFZmS3MdqLHES0d2INIOpNl0K6YCEQ2oHoZTlgwtnhiDgPuPmCU7EGQnV2iJBigF6jZbTSrOZUCYGFdYxselMGFRRpii+7KnuAjI0IEoUkOqiPCwJ2wfWAv7RCAcNu+JeCIiD02YGkJmIKZTHv8VCdQhCYkxTUOEZ6tKBCSrqJsI9HM6kPMzQ7KSgcjlQG3XbbNY7ahAhh1loexABPeU2qAmFhvn76ChWIRHQLwMtEkqkD0MZFPFNIKKMuI7A7E+IyquTEXeVYBiIe4ZxnsAdakFFCCuopBcQUOhpSaxahKQlQ3IclimJrSgdkn0Mn2lp9aATAlE+7U3FHwi0tFY1YiAgpiGxEh/V4CI0XS4NBer4gEXP4fshpDufdBjeugKArvlRJt2+kUyUfe9bjd4I+Y02nh1SWapuqPsEmpA6rKWxBaK6poxfjblo7601j9rl9Vt/xjQ/7/8/oHUZbhmqlTrDJ3RtwKUMVLMqQ+uAxGy6PgO74QMt15fEgehfMRt+X6rrW2dh47v18FnC/R6sw41HPrLJvXqXrPOgq8lNgKX6vW2nK/d9B14lCQDEd7e9esiPD2Rf/iyg7iBuipmoce3DX0biAqkpXWItkxcXbMuU6ovRuPtZDCRAiQ7qSrnCAQQz89tK9Y5qgANINKBCrR0/Ex4K8uqWyCASBhlvUQguu513HqDvUsCEK1M0KxRnbSpQuig3bGA7QYUCsaa79A9a8dv83IjgdjCUgK5rPXzIY3KfV0dCDO1u0KqPA0OAdEc66N7tmhhAp8p4Kq7B8a2A7q/AESE3MOszfxCB0ISCUTtgaORej05D9HWBJt7IoE8w7ZtQwChghCxwMqaa9hUQT3AAMdtMBXBYZtdLAwDIYAAcqNKTVKijFXPbl35ZNF//Mk2NxSfqE5sQr8qKiAGrcLoRQU6lYvmKzAgdTkUCCD6LiGJJY142LN6XqnGt5ooEB1CFNAG+qhNBri4QSBwHo4RARViQMy5BFCd1VTSPO90OtWUxMiXLJVIQxbb0aMa4lOizdB6qCGf2wkMhbj3LgYSYUyBemyviW23tUlapiZuV6iS+VBV8SE6lrTPGvhQj94MjlbA/NJguhoCKgggvs8jfQg9MkhtP/AmYtAlUJPEo0zmqRYaPTS579i0C4czBYe2QHYKUIEDselZ2FdoriLs9kSgfNP029U3NHCSgFjmqDgt6qAhxJHN8mDQchq0ZUzUUBgBVRkRC3u6duo6zU5qg1bVEmcCEOlFbv7GoNMbg+jUGj+lAllCQ4FoMMdkpm5Gj6b4EP8G3mqTeC3r8kIhCpfVY7EFc74RawKX8dhRvDGThniolDBf1rKwL7YhUqKMtJ2gErSqvNRADWcdqTjAV+0NvEpQtwUPKqQVVDw/hNn5Gdv3HX5sQyPAckHd90Ox6S73IYye73mdppuWh2LtSUI/VGBplcjJEcOgSVA5BfdEh/xYycdk6IuUd+4YBUM0N/uIop9IOCx8+Ba2oHMM0WlcOnQ2nisCsUGHZ9L1pl82OMrH0BCOvhauFQib13Xp1PdcV2rkXgiXOZ
3278HNzq/Z9J57HwXI+BmDvtGycdI1morsggedYoGeuTegP7DosdiHjAlwLjRLBbvPK3AGIFxKXyMZeWyxIciBHASqmH2buq4r2lu/YLPrLcw5lQKW3UmSzY2uAMTa5Vah12gZfEKnEAEVbNBevzWJlWGSWq2BpZnWXkfmyUuRSE4DuujbVQYEHR93GDQZoRmYAU1CrgYOrC7shG9aBdrqwi3dC2j01KcCEbeSJgFmZvq+4EGG8KFGAGLx+QP0GTDdBD8ogKFYoQktqGKoMztInUAWVw2obaYK603X6KpjTfiI2GOn6acCxZ4egFZCakMghr7Bwv/SciZ9MEHayUBWmvRtXrzfYDm8h/MBUN+reJ4A8tDZUUM+A6JnYIHpR32J3U+dIFFD4htvO0EKoh7ZuOAzbOlDBY8DQdEfwMeJW6BFFnYt2ljRxtCwlRozLMp36rmMUcZ4nBbtogWQjDKcHhdjwc9rkxaNe5vd0YCEhD9G40AZ8lAmIBGxMIOFHfdaQQHCxEjnl81bxWaqgMBvMWdzM9e0jBoSjQ/b3J0sqHmowZ0Zwoo1bwPOY08MqO2Mbj97jZ14hECFjFXeKIQtp+WyQmFvTLLongyFn9nhG6e1Jj2lsNZj6KFecC+Y6LQ++ir3j3+WN+2MbQd2WXR05ubc3XXXVyOBYmZuQ9yes8eA5jc3bTsLkJzWzixD7VwakO2urW1+Dj6EQMXi5ubndiFTX3Y1noTmKXEK+/PNzc3ifPGpACoWb4GaXNc1yIcFykAEw21u3irOzxfnywoQY1qrh+6lQPYHBOI0TOJAoLLNzdBx6u3qhwOy04FgoHtUN8U0IEQqb076553momuztvXjALFB0HHKOCuVRCC8WCxvDSqVc6e+9Jok9vTvAUT14oZNx+9g8zLYu7+xsQUzguDUFOhamfNpSGNdq+t1vv3+sz9OGO/Fo0HZbrvXdM69Slf5pZjV8IJBa2MLjFPGsM8Vi5xPgiHS/H0Pmq9K59sbn3322evXRpTm3gnGtt0lUEznvIIwFt8LExtijCsY/OnpP3KvXva9wR7orcz0JsDmy8WNAG/uXv/2xo0b/8uxsufGSKFuO6wjCyimEYOxYlwvPwUgobexPdAbNyiylTc3qZpMc/r68Q0mgPXZ968nJoYrxecoqkYgq62FveYb3z/3vG6337dS2kUVigGperMaFbDoYG+v9WQDZGsLkPDi8u6dmeso+OMv33Gm8AuNXhi+nnitycT3Ya/XbL554/g+3jqFz8zcuXN4eOfkpMbl5OT4zuH+9u719YPVZUvlioB0ew7za2f63W4Xf3AWnAdgTE1u3DjvTE39+7ffntR2jubmZkEWhMxKUU7NHdWO97fXV5djJjPT2t2EK8rdZm12blaTOUohZ5+7RATe7Fztzvb68stXuYe/7OzvHkjFpYIlq9GKA81pFLOXS3QrYv0CDdpPt5Fv54TqzbLMS8WylpdXD9Z3Zw5PakfDc2ahSAOb/QmBpJaBa26ndnw4s727vn7wzSrIMgj+/ebgYH19d3t7//C4Vjvi76N6xQeROaYhfKeYReVcit4117yKUd4JKNEFZ1POf2iOC4CSTDv720kWoN9UPj7Q3OXyGwANTbaQJurtH1lDoi7MHe3UTo4P92e2t3ehdHG5vru7PQMZBMoLkHA0SvWLyEMfkgmq08kdKJ1YOS/LtJBjv1nf3T+uUa7ZKFPPXi2cU+N/brYWT/fZqpC1ur59WMNM/Wp0ff9khwNm8UJBkZiqAShbPUwmm4bi+ulLqrmD3ZljWpkuKAmRK6JrHB+CVVZjxRWBUlSQ2N7EsUax/VDaMyya2zPQS9WgmzmKVHJ0tLMDfRXtqrDKRVZJA5ITTkMtPFi/vspmh255bDAYjAWB5zUa/SHelxwooT3Dz8tckl4uuR8SQOby+jYNoyPRHtW2sQWzvPvzsBYTy56tjY3W3iCYbvDRsWOkJjMvbHoucM5UIOub7drs7dsLUWexMHdynTIFT2ABIRZejA3I9gZeg5kst+dJwKv44IVAdMDp9cOj2QXe3dCWZe7wgC5k9rbKcnXD1l7INb91H/eHruERB1T1YV6kMmuZXTcvcmq872B/R2VamN1hphtslMvR8lRi0f2hogTceLIH/gbeloRDG8VvoFPchjyGHnEp0DATM90dVJPlPSmimrRVvFjbyzUrtyjI1pOxCAqGXT3cEf55+/bczPLlJktlgqPaLqqpcn9eR4pvNgiwcnmrhb9aipRzvTa7INujnV081bjYqYOKpa2hrIPDI9ojCzXtYyJo7GlIMSAOU9za8yw1k63uzy2IFA4vt444weTGhSYzN8qT6jD0aP14TlXT8QEijSlIChCHKc9vDBoazfJubVa8mBjEGpssbz65GOhJmSm6rzHFRqMvpyBFPlRkMHteX1usgp7Vd2JqtgYYs8VLgdgrzj8Za2hMQt9sSGp+hiSBrpU3wUwbYxoMfXRmZ1axOotXbvX58uVAVO9FpnVzyCN1JBhVbnrm/rQXsBSkBuvqdk2LixPUrllpcfVmAypGTIqeaMzORUhHFKlVLLOwF9sxapRqNJGtgo1iZO2MQBHTk0B1zuXtnZiWKhtQ3hiQlox5zohMBUljGm0FrhPl1qsASaYtutskLbcOby2R1vHrrS3M1AKItW27x1r1WVg4osoZymFXBIqYIneCvwfHzJlwphrEr7VHNSRgrh/uzC7otfCYeo41tjGU5a8MJJjYRqFQk3AmnO54le4PfTqK/eL2HQojaaipWBms7Km2eh8gvp1a3tpT1LRM0wDOuTC7b0H7MZ5jLb8KQ2moqRqDIeW8FxBnUtSkIM0u/BlwYNURbXJQ1VAa9jtciPIh5VwdaH5Y0Jv6EdIhd+/bYn9IbrwsgN/sUt1YHpqqOJ/8olmA5pWdb9kcii1eTAR7DYm0egeR1IUig6ntry9rNKl6TwTCYWRxLZajne9bt8Kw1+vV8dfo+HP0Xi8Mb63dKt7/T56RAelkQVlKLyDM4fqqJWiKF9HEgLTl2u0a+1/PW7d6zalr1649fZrLjY4+pvKjFPZ5dPTp05efgExTLR3UFm6zlevczsnMOtv2tBpjrYt1c6GGjr7+OvfJJ6MvKcKPfxgff/jixa+/3n07gvLdv/3LD1T++q83bz6DE29//fXF3VfjyDcKYNPTu38GH3rxOPfJtNzM35jnHWNSEtG8coP+rtms3aYYX3/94KdfHjygFK/+cvfuyNuR737IKv81MnL37ivEGn18N/ds/A9wAIDnLfl1RwJBzDGLxdb0NGo7JzBQF2/fPvtKmeiLm89Qvrz5/PkXz1H4xa/ohy+ef0ev33zOb/9y5C/j4yM5OHo2gop78CD3NHftWrPeC29FDbb0zOL8GnpmvQmO8c+nOWqTH8dfUYyRL2IUyPD8q6wagnu/fPaMj5F7/iV/EEz64sVDatHHD3K5pyg5FHH0gPnlOFfGyMh/K2MyjC+yUyRxAdbzHB/tpjz/H+Bt4G5AB/LwIf0DngkIb0eeffe3H4Zsgtr44YPJ/wE3pphAYzOXWwAAAABJRU5ErkJggg=="><noscript><img class="tws-bss-logo" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAMAAADQmBKKAAABgFBMVEXVrU+vnFj+yir30FqTqcvXl5z/zycZK1udFBv95J76q1IpWZr+vhdYeKaPj5rSCBzeZGzt49pgFCbgfIL/xyIcQXVni8EGOoX3tTX/eQD/9lX/AADqVjDqvsGtZ27crCj/0y8SBiFQL0pIeMPUJED/uxUAAH8AAP9/fz9/f3+qf1W5fYSZmWayxeX//7////8FJU/6+/vWHSkCGjvt7O0ELGQJMm4AGkgdVabXISwFID7/2i4iV6YAAAEQTKW2lznVER2GlqotSW3CytUWM1a6xNKVpLasuMrbSVJne5NOaInU2uNzhZhyialQY3o6UnBEWXWlq7fO09vs19gACS7Bnjjqx8k0VoZacpDc4ejnpqr7xTRYgLpPebbPslcVSZU1Zq39vjuRqMr//wDjiI7ZOkTklZp3lsbCoDvhdHrotbn/1Sb+22/+ySrganH/wxktJk/YMjvdXGT9mjf/1B5CXoTbU1skO1grQl2stLz+oTh8kayLE
3278hfBrGH/0yf/1STFdU2kAAAAgHRSTlP//x3///+e/v//A/6A///8//7//2b//v78AgMB////B8b///z6ZQIBBAQG/wX7BAL//v7+/v7//v7+/4P+AP7+///////////+/v////////////7+//////7+8v/+////B/8B//7+/v///nP/1P+E///+/oD///////////8vTx0m+wwAABQeSURBVHjazZuJW9vGtsAdIJAmhYSSpOl+b+/29idhWWMc6iDZkmzZxtjwwCYhEIflQlIS6C1L8276r79zZtOMLIHI0teT7yuylpmfzj5jN/fsxfjD342M332Wu/v40e9IHt/NPXy0kv/dyMqjh7kXj/Kl343k//4CNJQvvc9LJY77rmPl/+fhuwNleN/fDEid1RiWd4aKAcmxS/yj/le5nkaSBKYPyl5HHomLiUAllTQRX0h8Yu1s/Kah50vysHShhkp5Y5HLGZ4xlhbbdGD+t5Q/5ZfbMSJ4sNlcNBiDGMXlSPIpV7736aKY8UzMaIgzGlDb5OKvgIKrptmgmKbZp9pdafLLXR0o37TwrNVkn5b4XZVTept8qpJnVjNWfJPNj0dc3GxAXQpkwV/0hXwyUL4jHmvmVSCzYRCKqwBRL4eBmytGFiBQtgMPLoZnefZcF5wuXwWgkgDqLPbC3lJe0w8iNuu+GUgNeUuLi13T7OX5dR+eCtHQOMwKzGEZzJPOwsWKaU4lmwz/u9JG9eAhA1pZya+UKBAfuvfHFTin8BCwqNnBx10jL4BgiJXQNB0BtKg8hRoXKsIZQUnuSmrY42gdamsKZE1NTTUdVL7QhTflOE3NYCG+LzFIfiUvgQKjehqYZl0ABfBUXdUoVxHOCAYHjackxhIHynOgyBsM1RuMmMWCvEFcjCMifMiyhp6yIgU1fApLPZwBld4LqJEAlAeF4F/FqT0WZeKpLr+/jjAYwKV3AGqcnblnbRXIOXXdMw1oESar5okG5C3Rk9pTp/yBPrgU2jOk01wRqEtfwlKA6isxpzbQRysweagAdTCSOhFQKJ9CBcncAaGcHchgQBBGVRXIc0DqRFVRD4c/dzwF6BxzBeQW7SmaBEhD+sEiEmUGKkmgvAbEnIhoRmuJKSIN5SmG5kOYGGlMQpJaWqqzz5mAfJpRIyDM1Iam7grRS8dShYaRT6OMtOkQaMmlvAqEuPmKyDqgUFoS8z4elFL7IePsrJrnPcPp2Smd+VQ6pMukGi/2xF1agrxIxF1VtLS8T33qzD0Vd53RRJqvnp0ZlzRooocRLYRsJYiQocZHO8mOozPqU9FYyujpHWOmrutjSOmyFpbE3j5FMRmFJIwY6+5KyUCGUaViGEpXWJViGMq47IR2vaqdi6avLoWL7Wo0pHoVHKkK/2R919qPM4uJaTU6S3zufGjRwgRRZFpdxxUu4EO9siAhkSa/zO6xrDac6/CL9M5Fj10KFgnPAziiIwYyujjyKSttGpARNWg0So1YauVNGJ+GRjqMSnz9uhkCUBcPWvR54kSXKm3CAx1zJ1dQlTdo1I9iQK42ciz5CHEoEfH4sTqhBKpI9NhlzFR5eqojNFS1BFDpYg2J/ioOZC4RDchPA2rBfUR/R5rxmYYiIKmhUkkDKgmg4Py8zzsYIoCsDko3ytMRUK/iVSr8CojnakBMQU13yUFFyNycBEQ77gQgCyMskHcxIG+F5CFW2fATRAGiCZDwJ3k8K0ABXzOAPzvckVOBDBWIVq+26Ox4k+VKDYnqRe3d1oDoqPR+S8RyHMhjbscv60CGAmRoQIYEIgZ26LAai5y6YrwjENOpTxdERAXyRWNvWBGQIYHYqkICubRr6UVODSYD4Wu+qpEdiMdJv1mVyZkBeZAsqfQUDcFFAWRIILPRaERBxoEadRQWUAHJDqQEIWtOJFBMZMJNAOI5dzGfnIdM9ypAhuHJB/mJTEDGEFA/ZDYfAgr1xHgpkOEoyT8rkDEMBFZmS3MdqLHES0d2INIOpNl0K6YCEQ2oHoZTlgwtnhiDgPuPmCU7EGQnV2iJBigF6jZbTSrOZUCYGFdYxselMGFRRpii+7KnuAjI0IEoUkOqiPCwJ2wfWAv7RCAcNu+JeCIiD02YGkJmIKZTHv8VCdQhCYkxTUOEZ6tKBCSrqJsI9HM6kPMzQ7KSgcjlQG3XbbNY7ahAhh1loexABPeU2qAmFhvn76ChWIRHQLwMtEkqkD0MZFPFNIKKMuI7A7E+IyquTEXeVYBiIe4ZxnsAdakFFCCuopBcQUOhpSaxahKQlQ3IclimJrSgdkn0Mn2lp9aATAlE+7U3FHwi0tFY1YiAgpiGxEh/V4CI0XS4NBer4gEXP4fshpDufdBjeugKArvlRJt2+kUyUfe9bjd4I+Y02nh1SWapuqPsEmpA6rKWxBaK6poxfjblo7601j9rl9Vt/xjQ/7/8/oHUZbhmqlTrDJ3RtwKUMVLMqQ+uAxGy6PgO74QMt15fEgehfMRt+X6rrW2dh47v18FnC/R6sw41HPrLJvXqXrPOgq8lNgKX6vW2nK/d9B14lCQDEd7e9esiPD2Rf/iyg7iBuipmoce3DX0biAqkpXWItkxcXbMuU6ovRuPtZDCRAiQ7qSrnCAQQz89tK9Y5qgANINKBCrR0/Ex4K8uqWyCASBhlvUQguu513HqDvUsCEK1M0KxRnbSpQuig3bGA7QYUCsaa79A9a8dv83IjgdjCUgK5rPXzIY3KfV0dCDO1u0KqPA0OAdEc66N7tmhhAp8p4Kq7B8a2A7q/AESE3MOszfxCB0ISCUTtgaORej05D9HWBJt7IoE8w7ZtQwChghCxwMqaa9hUQT3AAMdtMBXBYZtdLAwDIYAAcqNKTVKijFXPbl35ZNF//Mk2NxSfqE5sQr8qKiAGrcLoRQU6lYvmKzAgdTkUCCD6LiGJJY142LN6XqnGt5ooEB1CFNAG+qhNBri4QSBwHo4RARViQMy5BFCd1VTSPO90OtWUxMiXLJVIQxbb0aMa4lOizdB6qCGf2wkMhbj3LgYSYUyBemyviW23tUlapiZuV6iS+VBV8SE6lrTPGvhQj94MjlbA/NJguhoCKgggvs8jfQg9MkhtP/AmYtAlUJPEo0zmqRYaPTS579i0C4czBYe2QHYKUIEDselZ2FdoriLs9kSgfNP029U3NHCSgFjmqDgt6qAhxJHN8mDQchq0ZUzUUBgBVRkRC3u6duo6zU5qg1bVEmcCEOlFbv7GoNMbg+jUGj+lAllCQ4FoMMdkpm5Gj6b4EP8G3mqTeC3r8kIhCpfVY7EFc74RawKX8dhRvDGThniolDBf1rKwL7YhUqKMtJ2gErSqvNRADWcdqTjAV+0NvEpQtwUPKqQVVDw/hNn5Gdv3HX5sQyPAckHd90Ox6S73IYye73mdppuWh2LtSUI/VGBplcjJEcOgSVA5BfdEh/xYycdk6IuUd+4YBUM0N/uIop9IOCx8+Ba2oHMM0WlcOnQ2nisCsUGHZ9L1pl82OMrH0BCOvhauFQib13Xp1PdcV2rkXgiXOZ
3278HNzq/Z9J57HwXI+BmDvtGycdI1morsggedYoGeuTegP7DosdiHjAlwLjRLBbvPK3AGIFxKXyMZeWyxIciBHASqmH2buq4r2lu/YLPrLcw5lQKW3UmSzY2uAMTa5Vah12gZfEKnEAEVbNBevzWJlWGSWq2BpZnWXkfmyUuRSE4DuujbVQYEHR93GDQZoRmYAU1CrgYOrC7shG9aBdrqwi3dC2j01KcCEbeSJgFmZvq+4EGG8KFGAGLx+QP0GTDdBD8ogKFYoQktqGKoMztInUAWVw2obaYK603X6KpjTfiI2GOn6acCxZ4egFZCakMghr7Bwv/SciZ9MEHayUBWmvRtXrzfYDm8h/MBUN+reJ4A8tDZUUM+A6JnYIHpR32J3U+dIFFD4htvO0EKoh7ZuOAzbOlDBY8DQdEfwMeJW6BFFnYt2ljRxtCwlRozLMp36rmMUcZ4nBbtogWQjDKcHhdjwc9rkxaNe5vd0YCEhD9G40AZ8lAmIBGxMIOFHfdaQQHCxEjnl81bxWaqgMBvMWdzM9e0jBoSjQ/b3J0sqHmowZ0Zwoo1bwPOY08MqO2Mbj97jZ14hECFjFXeKIQtp+WyQmFvTLLongyFn9nhG6e1Jj2lsNZj6KFecC+Y6LQ++ir3j3+WN+2MbQd2WXR05ubc3XXXVyOBYmZuQ9yes8eA5jc3bTsLkJzWzixD7VwakO2urW1+Dj6EQMXi5ubndiFTX3Y1noTmKXEK+/PNzc3ifPGpACoWb4GaXNc1yIcFykAEw21u3irOzxfnywoQY1qrh+6lQPYHBOI0TOJAoLLNzdBx6u3qhwOy04FgoHtUN8U0IEQqb076553momuztvXjALFB0HHKOCuVRCC8WCxvDSqVc6e+9Jok9vTvAUT14oZNx+9g8zLYu7+xsQUzguDUFOhamfNpSGNdq+t1vv3+sz9OGO/Fo0HZbrvXdM69Slf5pZjV8IJBa2MLjFPGsM8Vi5xPgiHS/H0Pmq9K59sbn3322evXRpTm3gnGtt0lUEznvIIwFt8LExtijCsY/OnpP3KvXva9wR7orcz0JsDmy8WNAG/uXv/2xo0b/8uxsufGSKFuO6wjCyimEYOxYlwvPwUgobexPdAbNyiylTc3qZpMc/r68Q0mgPXZ968nJoYrxecoqkYgq62FveYb3z/3vG6337dS2kUVigGperMaFbDoYG+v9WQDZGsLkPDi8u6dmeso+OMv33Gm8AuNXhi+nnitycT3Ya/XbL554/g+3jqFz8zcuXN4eOfkpMbl5OT4zuH+9u719YPVZUvlioB0ew7za2f63W4Xf3AWnAdgTE1u3DjvTE39+7ffntR2jubmZkEWhMxKUU7NHdWO97fXV5djJjPT2t2EK8rdZm12blaTOUohZ5+7RATe7Fztzvb68stXuYe/7OzvHkjFpYIlq9GKA81pFLOXS3QrYv0CDdpPt5Fv54TqzbLMS8WylpdXD9Z3Zw5PakfDc2ahSAOb/QmBpJaBa26ndnw4s727vn7wzSrIMgj+/ebgYH19d3t7//C4Vjvi76N6xQeROaYhfKeYReVcit4117yKUd4JKNEFZ1POf2iOC4CSTDv720kWoN9UPj7Q3OXyGwANTbaQJurtH1lDoi7MHe3UTo4P92e2t3ehdHG5vru7PQMZBMoLkHA0SvWLyEMfkgmq08kdKJ1YOS/LtJBjv1nf3T+uUa7ZKFPPXi2cU+N/brYWT/fZqpC1ur59WMNM/Wp0ff9khwNm8UJBkZiqAShbPUwmm4bi+ulLqrmD3ZljWpkuKAmRK6JrHB+CVVZjxRWBUlSQ2N7EsUax/VDaMyya2zPQS9WgmzmKVHJ0tLMDfRXtqrDKRVZJA5ITTkMtPFi/vspmh255bDAYjAWB5zUa/SHelxwooT3Dz8tckl4uuR8SQOby+jYNoyPRHtW2sQWzvPvzsBYTy56tjY3W3iCYbvDRsWOkJjMvbHoucM5UIOub7drs7dsLUWexMHdynTIFT2ABIRZejA3I9gZeg5kst+dJwKv44IVAdMDp9cOj2QXe3dCWZe7wgC5k9rbKcnXD1l7INb91H/eHruERB1T1YV6kMmuZXTcvcmq872B/R2VamN1hphtslMvR8lRi0f2hogTceLIH/gbeloRDG8VvoFPchjyGHnEp0DATM90dVJPlPSmimrRVvFjbyzUrtyjI1pOxCAqGXT3cEf55+/bczPLlJktlgqPaLqqpcn9eR4pvNgiwcnmrhb9aipRzvTa7INujnV081bjYqYOKpa2hrIPDI9ojCzXtYyJo7GlIMSAOU9za8yw1k63uzy2IFA4vt444weTGhSYzN8qT6jD0aP14TlXT8QEijSlIChCHKc9vDBoazfJubVa8mBjEGpssbz65GOhJmSm6rzHFRqMvpyBFPlRkMHteX1usgp7Vd2JqtgYYs8VLgdgrzj8Za2hMQt9sSGp+hiSBrpU3wUwbYxoMfXRmZ1axOotXbvX58uVAVO9FpnVzyCN1JBhVbnrm/rQXsBSkBuvqdk2LixPUrllpcfVmAypGTIqeaMzORUhHFKlVLLOwF9sxapRqNJGtgo1iZO2MQBHTk0B1zuXtnZiWKhtQ3hiQlox5zohMBUljGm0FrhPl1qsASaYtutskLbcOby2R1vHrrS3M1AKItW27x1r1WVg4osoZymFXBIqYIneCvwfHzJlwphrEr7VHNSRgrh/uzC7otfCYeo41tjGU5a8MJJjYRqFQk3AmnO54le4PfTqK/eL2HQojaaipWBms7Km2eh8gvp1a3tpT1LRM0wDOuTC7b0H7MZ5jLb8KQ2moqRqDIeW8FxBnUtSkIM0u/BlwYNURbXJQ1VAa9jtciPIh5VwdaH5Y0Jv6EdIhd+/bYn9IbrwsgN/sUt1YHpqqOJ/8olmA5pWdb9kcii1eTAR7DYm0egeR1IUig6ntry9rNKl6TwTCYWRxLZajne9bt8Kw1+vV8dfo+HP0Xi8Mb63dKt7/T56RAelkQVlKLyDM4fqqJWiKF9HEgLTl2u0a+1/PW7d6zalr1649fZrLjY4+pvKjFPZ5dPTp05efgExTLR3UFm6zlevczsnMOtv2tBpjrYt1c6GGjr7+OvfJJ6MvKcKPfxgff/jixa+/3n07gvLdv/3LD1T++q83bz6DE29//fXF3VfjyDcKYNPTu38GH3rxOPfJtNzM35jnHWNSEtG8coP+rtms3aYYX3/94KdfHjygFK/+cvfuyNuR737IKv81MnL37ivEGn18N/ds/A9wAIDnLfl1RwJBzDGLxdb0NGo7JzBQF2/fPvtKmeiLm89Qvrz5/PkXz1H4xa/ohy+ef0ev33zOb/9y5C/j4yM5OHo2gop78CD3NHftWrPeC29FDbb0zOL8GnpmvQmO8c+nOWqTH8dfUYyRL2IUyPD8q6wagnu/fPaMj5F7/iV/EEz64sVDatHHD3K5pyg5FHH0gPnlOFfGyMh/K2MyjC+yUyRxAdbzHB/tpjz/H+Bt4G5AB/LwIf0DngkIb0eeffe3H4Zsgtr44YPJ/wE3pphAYzOXWwAAAABJRU5ErkJggg==" width="144" height="144" alt="The Great British Shooting Show" loading="lazy" decoding="async"></noscript><div class="tws-bss-text"><p class="tws-bss-kicker" data-tws-bss-kicker><span class="tws-bss-date">12â14 February 2027</span><span class="tws-bss-venue">NEC Birmingham</span></p><h2 class="tws-bss-line" data-tws-bss-line>Three days, every major brand, the launches of the year and the people behind them, all indoors at the NEC.</h2></div><div class="tws-bss-actions"><a class="tws-bss-btn" href="https://britishshootingshow.com/tickets/?utm_source=gundog-journal&utm_medium=article&utm_campaign=bss27-show&utm_content=ticket-block&ref=bss27-show-article-gundog-journal" data-tws-bss-btn>Buy tickets</a><a class="tws-bss-secondary" href="#" hidden data-tws-bss-secondary></a></div></div></aside> 3279 3280 <div class="tws-bs-side tws-bs-side--desk" data-tws-bs hidden></div> 3281 <div class="flex justify-center items-center mb-[40px]"> 3282 <div class="a-single a-9"><!-- /22987101562/GDJ.com-TopSkyscraper-DMPU style='min-width: 300px; min-height: 250px;' --> 3283<div id='div-gpt-ad-1737909371906-0'> 3284
3284<script> 3285 // Event Listener added by NetMatters 3286 window.addEventListener('gptScriptLoaded', function() { 3287 googletag.cmd.push(function() { googletag.display('div-gpt-ad-1737909371906-0'); }); 3288 }); 3289 </script>
3289 3290</div></div> </div> 3291 <div class="flex justify-center items-center mb-[40px]"> 3292 <div class="a-single a-7"><!-- /22987101562/GDJ.com-MidPageUnit-MPU_1 style='min-width: 300px; min-height: 250px;' --> 3293<div id='div-gpt-ad-1737909480514-0'> 3294
3294<script> 3295 // Event Listener added by NetMatters 3296 window.addEventListener('gptScriptLoaded', function() { 3297 googletag.cmd.push(function() { googletag.display('div-gpt-ad-1737909480514-0'); }); 3298 }); 3299 </script>
3299 3300</div></div> </div> 3301 <div class="flex justify-center items-center mb-[40px]"> 3302 <div class="a-single a-10"><!-- /22987101562/GDJ.com-MidSkyscraper-DMPU style='min-width: 300px; min-height: 250px;' --> 3303<div id='div-gpt-ad-1737909615138-0'> 3304
3304<script> 3305 // Event Listener added by NetMatters 3306 window.addEventListener('gptScriptLoaded', function() { 3307 googletag.cmd.push(function() { googletag.display('div-gpt-ad-1737909615138-0'); }); 3308 }); 3309 </script>
3309 3310</div></div> </div> 3311 <div class="flex justify-center items-center mb-[40px]"> 3312 <div class="a-single a-6"><!-- /22987101562/GDJ.com-MidPageUnit-MPU_2 style='min-width: 300px; min-height: 250px;' --> 3313<div id='div-gpt-ad-1737909760646-0'> 3314
3314<script> 3315 // Event Listener added by NetMatters 3316 window.addEventListener('gptScriptLoaded', function() { 3317 googletag.cmd.push(function() { googletag.display('div-gpt-ad-1737909760646-0'); }); 3318 }); 3319 </script>
3319 3320</div></div> </div> 3321 <div class="flex justify-center items-center mb-[40px]"> 3322 <div class="a-single a-11"><!-- /22987101562/GDJ.com-BotSkyscraper-DMPU style='min-width: 300px; min-height: 250px;' --> 3323<div id='div-gpt-ad-1737909866929-0'> 3324
3324<script> 3325 // Event Listener added by NetMatters 3326 window.addEventListener('gptScriptLoaded', function() { 3327 googletag.cmd.push(function() { googletag.display('div-gpt-ad-1737909866929-0'); }); 3328 }); 3329 </script>
3329 3330</div></div> </div> 3331 </div> 3332 </div> 3333 </div> 3334 3335 3336</section> 3337 3338<style> 3339 /* Sidebar advert column, desktop only. 3340 Every sidebar creative on the network is 300px wide. A percentage column is 3341 either too narrow, so the advert overflows over the article list, or too wide, 3342 so it floats short of the page edge and steals width from the text. Fixing the 3343 column at the creative width lines the adverts up with the right-hand edge of 3344 the container and gives everything else back to the article list. 3345 320px = the 300px column plus the wrapper's 20px gap. */ 3346 @media (min-width: 1024px) { 3347 .paginated-posts-ads-container { 3348 width: 300px; 3349 flex: 0 0 300px; 3350 } 3351 3352 .tws-archive-main { 3353 width: calc(100% - 320px); 3354 flex: 0 0 calc(100% - 320px); 3355 } 3356 } 3357 3358 .posts-pagination .page-numbers { 3359 color: rgb(107, 114, 128); 3360 } 3361 3362 .posts-pagination .page-numbers.current { 3363 color: rgb(0, 0, 0); 3364 } 3365 3366 .posts-pagination, 3367 .posts-pagination .current { 3368 font-size: 20px; 3369 } 3370</style> 3371
3372<script> 3373 function updateQueryParameter(sort) { 3374 const url = new URL(window.location.href); 3375 url.searchParams.set('sort', sort); 3376 return url.href; 3377 } 3378</script>
3378 3379 3380 <section class="relative lg:mt-[40px] mt-[20px]"> 3381 3382 3383 <div class="container "> 3384 <div class="heading__centered-heading-full-width text-left bg-primary"> 3385 3386 <h3 class="heading-text text-white text-[24px] font-semibold leading-tight px-5 py-[10px] tracking-wide mb-[15px]"> 3387 Find out more 3388 </h3> 3389 3390 </div> 3391 3392 <!-- Swiper container for mobile only --> 3393 <div 3394 class="image-card-Findoutmore overflow-hidden mobile-carousel hidden"> 3395 <div class="swiper-wrapper"> 3396 <div class="swiper-slide"> 3397 <a class="group overflow-hidden relative w-full max-h-[400px] flex" 3398 href="/training/news-training/" 3399 > 3400 <img width="1707" height="2560" class="image-card-list-image object-cover group-hover:scale-110 w-full h-full" 3401 src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201707%202560'%3E%3C/svg%3E" alt="Black cocker spaniel looking up at owner" data-lazy-src="/app/uploads/sites/2/2025/01/Lucy-at-Beggarbush-Gundogs-3-scaled.jpg"><noscript><img width="1707" height="2560" class="image-card-list-image object-cover group-hover:scale-110 w-full h-full" 3402 src="/app/uploads/sites/2/2025/01/Lucy-at-Beggarbush-Gundogs-3-scaled.jpg" alt="Black cocker spaniel looking up at owner"></noscript> 3403 <div class="flex w-full h-full justify-center items-center absolute" 3404 style="background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.20) 0%, rgba(0, 0, 0, 0.20) 100%)"> 3405 <span 3406 class="w-[75%] h-[75%] align-center flex flex-col justify-center leading-[1] text-center font-semibold text-[32px] bg-[rgba(0,0,0,0.70)] text-white">News</span> 3407 </div> 3408 </a> 3409 </div> 3410 <div class="swiper-slide"> 3411 <a class="group overflow-hidden relative w-full max-h-[400px] flex" 3412 href="https://gundog-journal.com/gear/" 3413 > 3414 <img width="2560" height="1707" class="image-card-list-image object-cover group-hover:scale-110 w-full h-full" 3415 src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%202560%201707'%3E%3C/svg%3E" alt="A spaniel sitting obediently watching on" data-lazy-src="/app/uploads/sites/2/2025/01/FJ-Grouse-031020-246-scaled.jpg"><noscript><img width="2560" height="1707" class="image-card-list-image object-cover group-hover:scale-110 w-full h-full" 3416 src="/app/uploads/sites/2/2025/01/FJ-Grouse-031020-246-scaled.jpg" alt="A spaniel sitting obediently watching on"></noscript> 3417 <div class="flex w-full h-full justify-center items-center absolute" 3418 style="background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.20) 0%, rgba(0, 0, 0, 0.20) 100%)"> 3419 <span 3420 class="w-[75%] h-[75%] align-center flex flex-col justify-center leading-[1] text-center font-semibold text-[32px] bg-[rgba(0,0,0,0.70)] text-white">Product reviews</span> 3421 </div> 3422 </a> 3423 </div> 3424 <div class="swiper-slide"> 3425 <a class="group overflow-hidden relative w-full max-h-[400px] flex" 3426 href="https://gundog-journal.com/gear/" 3427 > 3428 <img width="2560" height="1442" class="image-card-list-image object-cover group-hover:scale-110 w-full h-full" 3429 src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%202560%201442'%3E%3C/svg%3E" alt="Brimpsfield Park for FSJ-88" data-lazy-src="/app/uploads/sites/2/2025/01/Brimpsfield-Park-for-FSJ-88-scaled-e1735918765553.jpg"><noscript><img width="2560" height="1442" class="image-card-list-image object-cover group-hover:scale-110 w-full h-full" 3430 src="/app/uploads/sites/2/2025/01/Brimpsfield-Park-for-FSJ-88-scaled-e1735918765553.jpg" alt="Brimpsfield Park for FSJ-88"></noscript> 3431 <div class="flex w-full h-full justify-center items-center absolute" 3432 style="background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.20) 0%, rgba(0, 0, 0, 0.20) 100%)">
3433 <span 3434 class="w-[75%] h-[75%] align-center flex flex-col justify-center leading-[1] text-center font-semibold text-[32px] bg-[rgba(0,0,0,0.70)] text-white">Buying guides</span> 3435 </div> 3436 </a> 3437 </div> 3438 </div> 3439 <!-- Pagination for Swiper --> 3440 <div id="swiper-pagination-Findoutmore" class="swiper-pagination"></div> 3441 </div> 3442 3443 <!-- Standard layout for desktop --> 3444 <div class="desktop-grid flex gap-[20px]"> 3445 <a class="group overflow-hidden relative grow w-full md:w-[calc(33.33%_-_20px/3)] xl:w-[calc(25%_-_60px/4)] max-h-[550px] flex" 3446 href="/training/news-training/" 3447 > 3448 <img width="1707" height="2560" class="image-card-list-image object-cover group-hover:scale-110 w-full h-full" 3449 src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201707%202560'%3E%3C/svg%3E" alt="Black cocker spaniel looking up at owner" data-lazy-src="/app/uploads/sites/2/2025/01/Lucy-at-Beggarbush-Gundogs-3-scaled.jpg"><noscript><img width="1707" height="2560" class="image-card-list-image object-cover group-hover:scale-110 w-full h-full" 3450 src="/app/uploads/sites/2/2025/01/Lucy-at-Beggarbush-Gundogs-3-scaled.jpg" alt="Black cocker spaniel looking up at owner"></noscript> 3451 <div class="flex w-full h-full justify-center items-center absolute" 3452 style="background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.20) 0%, rgba(0, 0, 0, 0.20) 100%)"> 3453 <span 3454 class="w-[75%] h-[75%] min-w-[140px] align-center flex flex-col justify-center leading-[1] text-center font-semibold text-[32px] lg:text-[24px] xl:text-[32px] bg-[rgba(0,0,0,0.70)] text-white">News</span> 3455 </div> 3456 </a> 3457 <a class="group overflow-hidden relative grow w-full md:w-[calc(33.33%_-_20px/3)] xl:w-[calc(25%_-_60px/4)] max-h-[550px] flex" 3458 href="https://gundog-journal.com/gear/" 3459 > 3460 <img width="2560" height="1707" class="image-card-list-image object-cover group-hover:scale-110 w-full h-full" 3461 src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%202560%201707'%3E%3C/svg%3E" alt="A spaniel sitting obediently watching on" data-lazy-src="/app/uploads/sites/2/2025/01/FJ-Grouse-031020-246-scaled.jpg"><noscript><img width="2560" height="1707" class="image-card-list-image object-cover group-hover:scale-110 w-full h-full" 3462 src="/app/uploads/sites/2/2025/01/FJ-Grouse-031020-246-scaled.jpg" alt="A spaniel sitting obediently watching on"></noscript> 3463 <div class="flex w-full h-full justify-center items-center absolute" 3464 style="background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.20) 0%, rgba(0, 0, 0, 0.20) 100%)"> 3465 <span 3466 class="w-[75%] h-[75%] min-w-[140px] align-center flex flex-col justify-center leading-[1] text-center font-semibold text-[32px] lg:text-[24px] xl:text-[32px] bg-[rgba(0,0,0,0.70)] text-white">Product reviews</span> 3467 </div> 3468 </a> 3469 <a class="group overflow-hidden relative grow w-full md:w-[calc(33.33%_-_20px/3)] xl:w-[calc(25%_-_60px/4)] max-h-[550px] flex" 3470 href="https://gundog-journal.com/gear/" 3471 > 3472 <img width="2560" height="1442" class="image-card-list-image object-cover group-hover:scale-110 w-full h-full" 3473 src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%202560%201442'%3E%3C/svg%3E" alt="Brimpsfield Park for FSJ-88" data-lazy-src="/app/uploads/sites/2/2025/01/Brimpsfield-Park-for-FSJ-88-scaled-e1735918765553.jpg"><noscript><img width="2560" height="1442" class="image-card-list-image object-cover group-hover:scale-110 w-full h-full" 3474 src="/app/uploads/sites/2/2025/01/Brimpsfield-Park-for-FSJ-88-scaled-e1735918765553.jpg" alt="Brimpsfield Park for FSJ-88"></noscript> 3475 <div class="flex w-full h-full justify-center items-center absolute" 3476 style="background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.20) 0%, rgba(0, 0, 0, 0.20) 100%)">
3477 <span 3478 class="w-[75%] h-[75%] min-w-[140px] align-center flex flex-col justify-center leading-[1] text-center font-semibold text-[32px] lg:text-[24px] xl:text-[32px] bg-[rgba(0,0,0,0.70)] text-white">Buying guides</span> 3479 </div> 3480 </a> 3481 </div> 3482 </div> 3483 3484 3485</section> 3486 3487
3487<script> 3488 document.addEventListener("DOMContentLoaded", function() { 3489 let imageCardLinkListSwiper = null; 3490 3491 function initSwiper() { 3492 // Initialize Swiper only on screens smaller than 1024px 3493 if (window.innerWidth < 1024) { 3494 document.querySelector('.desktop-grid').style.display = 'none'; 3495 document.querySelector('.mobile-carousel').style.display = 'block'; 3496 3497 if (!imageCardLinkListSwiper) { 3498 imageCardLinkListSwiper = new Swiper( 3499 '.image-card-Findoutmore', { 3500 loop: true, 3501 autoplay: { 3502 delay: 3500, 3503 disableOnInteraction: false, 3504 }, 3505 pagination: { 3506 el: '#swiper-pagination-Findoutmore', 3507 clickable: true, 3508 }, 3509 speed: 800, 3510 }); 3511 } 3512 } else { 3513 document.querySelector('.desktop-grid').style.display = 'flex'; 3514 document.querySelector('.mobile-carousel').style.display = 'none'; 3515 3516 // Destroy Swiper on larger screens 3517 if (imageCardLinkListSwiper) { 3518 imageCardLinkListSwiper.destroy(true, true); 3519 imageCardLinkListSwiper = null; 3520 } 3521 } 3522 } 3523 3524 // Run on initial load 3525 initSwiper(); 3526 3527 // Re-run on window resize 3528 window.addEventListener('resize', initSwiper); 3529 }); 3530 </script>
3530 3531 3532 3533 3534 3535 3536 3537 </main> 3538 3539</div> 3540 3541<div data-wpr-lazyrender="1" class="mt-[20px] lg:mt-[40px] disable-wpr-lazyrender"> 3542 <div class="subscribe-cta-block bg-black py-[80px] md:py-[40px]"> 3543 3544 <div class="container gap-[20px] flex flex-col lg:flex-row w-full overflow-hidden items-center"> 3545 3546 3547 <div 3548 class="w-full lg:w-1/2 gap-[20px] flex flex-col justify-center text-white text-center subscribe-content-left"> 3549 <div> 3550 <p class="text-[12px] text-center font-light lg:text-left text-white">Get the latest news delivered direct to your door</p> 3551 <h2 style="margin-bottom: 0;" class="text-[32px] leading-normal text-center lg:text-left font-bold"> 3552 Subscribe to Gundog Journal</h2> 3553 </div> 3554 3555 <div class="text-base lg:text-md text-center font-light leading-[24px] lg:text-left "> 3556 <p>Unlock the full potential of your working dog with a subscription to Gundog Journal, the UK’s only dedicated magazine for gundog enthusiasts. Published bi-monthly, this authoritative resource delivers expert training advice, in-depth interviews with top trainers and veterinary guidance to help you nurture a stronger bond with your dog.</p> 3557<p>With stunning photography and thought-provoking content, Gundog Journal is your essential guide to understanding, training and celebrating your working dog.</p> 3558<p><strong>Save 16% on shop price</strong> when you subscribe, with a choice of packages that work for you. Choose from Print & Digital or Digital only with each journal delivered directly to your door or via the app every other month, plus access to past issues with the digital back issue library.</p> 3559<p> </p> 3560 3561 </div> 3562 <a href="https://shop.twsgroup.com/subscribe/gundog-journal" 3563 class="btn-normal mb-[80px] md:mb-[0px] lg:mb-[0] btn-primary-hover-dark mx-auto lg:mr-auto lg:ml-0 inline-block" 3564 style="background-color: #b38750;"> 3565 Subscribe 3566 </a> 3567 </div> 3568 3569 3570 <div class="flex flex-row w-full lg:w-1/2 h-full gap-[20px] md:gap-[40px] lg:gap-[20px]"> 3571 <div class="w-full flex lg:w-1/2"> 3572 <img width="1404" height="1700" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201404%201700'%3E%3C/svg%3E" alt="Subscribe to Gundog Journal" 3573 class="w-full aspect-[0.83/1] object-contain" data-lazy-src="/app/uploads/sites/2/2025/01/GJ-6.2.jpg"><noscript><img width="1404" height="1700" src="/app/uploads/sites/2/2025/01/GJ-6.2.jpg" alt="Subscribe to Gundog Journal" 3574 class="w-full aspect-[0.83/1] object-contain"></noscript> 3575 </div> 3576 <div class="w-full flex lg:w-1/2"> 3577 <img width="2123" height="2560" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%202123%202560'%3E%3C/svg%3E" alt="Subscribe to Gundog Journal" 3578 class="w-full aspect-[0.83/1] object-contain" data-lazy-src="/app/uploads/sites/2/2025/01/GJ-6.3-scaled.jpg"><noscript><img width="2123" height="2560" src="/app/uploads/sites/2/2025/01/GJ-6.3-scaled.jpg" alt="Subscribe to Gundog Journal" 3579 class="w-full aspect-[0.83/1] object-contain"></noscript> 3580 </div> 3581 </div> 3582 </div> 3583 3584</div> 3585 </div> 3586 3587<footer data-wpr-lazyrender="1" class="bg-secondary text-white disable-wpr-lazyrender"> 3588 <div class="container"> 3589 <div class="footer-top flex container py-[20px] lg:py-[40px] px-0"> 3590 <div class="grid grid-cols-12 w-full gap-[20px] lg:gap-[40px]"> 3591 <div class="order-1 lg:order-1 flex flex-col gap-16px column-1 col-span-12 md:col-span-6 lg:col-span-3"> 3592 <div class="footer-logo-wrapper flex flex-col items-center w-full md:w-fit mb-[20px] lg:mb-[0]"> 3593 <a href="https://gundog-journal.com/" aria-label="Home" class="flex justify-start w-[100%]"> 3594 <img width="261" height="73" class="footer-logo w-auto mb-[10px] h-[45px]" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20261%2073'%3E%3C/svg%3E" 3595 alt="" data-lazy-src="/app/uploads/sites/2/2024/11/shootinguklogo-160-1.png" /><noscript><img width="261" height="73" class="footer-logo w-auto mb-[10px] h-[45px]" src="/app/uploads/sites/2/2024/11/shootinguklogo-160-1.png" 3596 alt="" /></noscript> 3597 </a> 3598 <h6 class="text-[12px] text-center">Training . Advice . Comment</h6> 3599 </div> 3600 <div 3601 class="flex md:hidden footer-form-container flex flex-col column-5 col
3601-span-12 md:col-span-6 lg:col-span-3"> 3602 <h4 class="mb-5 pb-2 text-[12px]">Subscribe to our newsletter today: </h4> 3603 <a href="https://gundog-journal.com/newsletter/" 3604 class="btn-normal mb-[20px] btn-primary-hover-dark text-white hover:text-white"> 3605 Sign up 3606 </a> 3607 </div> 3608 3609 <div class="footer-contacts flex flex-col gap-16px"> 3610 <span class="text-white text-base">Get in touch:</span> 3611 <div class="flex items-center gap-16px"> 3612 <svg class="h-6 w-6 min-w-6 fill-white" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21.384,17.752a2.108,2.108,0,0,1-.522,3.359,7.543,7.543,0,0,1-5.476.642C10.5,20.523,3.477,13.5,2.247,8.614a7.543,7.543,0,0,1,.642-5.476,2.108,2.108,0,0,1,3.359-.522L8.333,4.7a2.094,2.094,0,0,1,.445,2.328A3.877,3.877,0,0,1,8,8.2c-2.384,2.384,5.417,10.185,7.8,7.8a3.877,3.877,0,0,1,1.173-.781,2.092,2.092,0,0,1,2.328.445Z"/></svg> <a class="text-[12px] hover:text-primary" href="tel:+441313576305" 3613 >+44 (0) 131 357 6305</a> 3614 </div> 3615 <div class="flex items-center gap-16px"> 3616 <svg class="h-6 w-6 min-w-6 fill-white" fill="#ffffff" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 488 488" xml:space="preserve" stroke="#ffffff"> 3617<path d="M487.9,87.85c0-0.2,0-0.4,0-0.6c0-0.1,0-0.2,0-0.4s-0.1-0.4-0.1-0.6c0-0.1,0-0.3-0.1-0.4c0-0.2-0.1-0.3-0.1-0.5 c0-0.1-0.1-0.3-0.1-0.4c0-0.1-0.1-0.3-0.2-0.4c-0.1-0.2-0.1-0.3-0.2-0.5c-0.1-0.1-0.1-0.2-0.2-0.4c-0.1-0.2-0.2-0.4-0.3-0.5 c-0.1-0.1-0.1-0.2-0.2-0.3c-0.1-0.2-0.2-0.4-0.3-0.5c0,0,0-0.1-0.1-0.1c-0.1-0.1-0.1-0.2-0.2-0.2c-0.1-0.2-0.2-0.3-0.4-0.4 c-0.1-0.1-0.2-0.2-0.3-0.4c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.3-0.2-0.4-0.4c-0.1-0.1-0.2-0.2-0.3-0.3s-0.3-0.2-0.4-0.3 c-0.1-0.1-0.2-0.2-0.3-0.2c-0.1-0.1-0.3-0.2-0.5-0.3c-0.1-0.1-0.3-0.1-0.4-0.2c-0.1-0.1-0.3-0.1-0.4-0.2c-0.2-0.1-0.3-0.1-0.5-0.2 c-0.1-0.1-0.3-0.1-0.4-0.2c-0.2-0.1-0.3-0.1-0.5-0.2c-0.1,0-0.3-0.1-0.4-0.1c-0.2,0-0.3-0.1-0.5-0.1s-0.3-0.1-0.5-0.1 s-0.3,0-0.5-0.1c-0.2,0-0.4,0-0.6,0c-0.1,0-0.2,0-0.3,0H9.9c-0.1,0-0.2,0-0.3,0c-0.2,0-0.4,0-0.5,0c-0.2,0-0.3,0-0.5,0.1 c-0.2,0-0.3,0-0.5,0.1c-0.2,0-0.4,0.1-0.5,0.1c-0.1,0-0.3,0.1-0.4,0.1c-0.2,0.1-0.4,0.1-0.5,0.2c-0.1,0-0.3,0.1-0.4,0.1 c-0.2,0.1-0.3,0.1-0.5,0.2c-0.1,0.1-0.3,0.1-0.4,0.2c-0.1,0.1-0.3,0.2-0.4,0.2c-0.1,0.1-0.3,0.2-0.4,0.3c-0.1,0.1-0.2,0.2-0.4,0.2 c-0.1,0.1-0.3,0.2-0.4,0.3c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.3,0.2-0.4,0.4c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.2,0.2-0.3,0.4 c-0.1,0.1-0.2,0.3-0.4,0.5c-0.1,0.1-0.1,0.1-0.2,0.2c0,0,0,0.1-0.1,0.1c-0.1,0.2-0.2,0.4-0.3,0.5c-0.1,0.1-0.1,0.2-0.2,0.3 c-0.1,0.2-0.2,0.4-0.3,0.5c-0.1,0.1-0.1,0.2-0.2,0.4c-0.1,0.2-0.1,0.3-0.2,0.5c-0.1,0.1-0.1,0.3-0.2,0.4c0,0.1-0.1,0.3-0.1,0.4 c0,0.2-0.1,0.3-0.1,0.5c0,0.1,0,0.3-0.1,0.4c0,0.2-0.1,0.4-0.1,0.6c0,0.1,0,0.2,0,0.4s0,0.4,0,0.6v0.1v312c0,5.5,4.5,10,10,10h468 c5.5,0,10-4.5,10-10v-312C487.9,87.95,487.9,87.85,487.9,87.85z M446.7,97.95l-202.8,144.6L41.1,97.95H446.7z M467.9,389.95h-448 v-282.6l218.2,155.6c1.7,1.2,3.8,1.9,5.8,1.9s4.1-0.6,5.8-1.9l218.2-155.6V389.95z"/> 3618 3619</svg> <a class="text-[12px] hover:text-primary break-all" 3620 href="mailto:[email protected]" 3621 >[email protected]</a> 3622 </div> 3623 </div> 3624 3625 3626 <div class="downloadable-links flex flex-col gap-4 mb-5 lg:mb-0"> 3627 <span class="text-white text-base">On the go? Get the app:</span> 3628 <div class="flex gap-[10px]"> 3629 <a href="https://apps.apple.com/us/app/gundog-journal/id6463429302" target="_blank" rel="noopener noreferrer" class="d-block"> 3630 <img width="511" height="179" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20511%20179'%3E%3C/svg%3E" alt="Download on the App Store" 3631 class=" h-[50px] max-h-[50px]" data-lazy-src="/app/uploads/sites/2/2025/03/app_store_download_button_txGvG.png"><noscript><img width="511" height="179" src="/app/uploads/sites/2/2025/03/app_store_download_button_txGvG.png" alt="Download on the App Store" 3632 class=" h-[50px] max-h-[50px]"></noscript> 3633 </a> 3634 <a href="https://play.google.com/store/apps/details?id=com.jellyfish.gundogjournal" target="_blank" rel="noopener noreferrer" class="d-block"> 3635 <img width="575" height="179" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20575%20179'%3E%3C/svg%3E" alt="Download on Google Play" 3636 class=" h-[50px] max-h-[50px]" data-lazy-src="/app/uploads/sites/2/2025/03/google_play_download_button_TLBWZ.png"><noscript><img width="575" height="179" src="/app/uploads/sites/2/2025/03/google_play_download_button_TLBWZ.png" alt="Download on Google Play" 3637 class=" h-[50px] max-h-[50px]"></noscript> 3638 </a> 3639 </div> 3640 </div> 3641 3642 </div> 3643 3644 <div x-data="{ expanded_1: window.innerWidth > 899 }" 3645 class="mb-[20px] lg:mb-[0] text-[12px] order-3 lg:order-2 flex flex-col column-2 col-span-12 md:col-span-4 lg:col-span-2"> 3646 <h4 :class="{ 3647 'after:ml-auto after:content-[\'\\f343\'] after:font-[dashicons]': expanded_1 && window 3648 .innerWidth < 3649 899, 3650 'after:ml-auto after:content-[\'\\f347\'] after:font-[dashicons]': !expanded_1 && window 3651 .innerWidth < 899 3652 }" 3653 @click="expanded_1 = ! expanded_1" class="border-b border-white mb-4 pb-2 flex"> 3654 Useful links </h4> 3655 <div x-show="expanded_1" x-collapse> 3656 <div class="menu-useful-links-container"><ul id="menu-useful-links" class="menu text-[12px] list-disc pl-[20px] flex flex-col gap-[10px]"><li id="menu-item-2870" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2870"><a href="https://gundog-journal.com/about-us/">About us</a></li> 3657<li id="menu-item-2869" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2869"><a href="https://gundog-journal.com/faqs/">FAQs</a></li> 3658<li id="menu-item-2871" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2871"><a href="https://gundog-journal.com/contact/">Contact us</a></li> 3659<li id="menu-item-3624" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3624"><a href="https://gundog-journal.com/advertise-with-us/">Advertise with us</a></li> 3660</ul></div> </div> 3661 </div> 3662 3663 <div x-data="{ expanded_2: window.innerWidth > 899 }" 3664 class="mb-[20px] lg:mb-[0] text-[12px] order-4 lg:order-3 flex flex-col column-3 col-span-12 md:col-span-4 lg:col-span-2"> 3665 <h4 :class="{ 3666 'after:ml-auto after:content-[\'\\f343\'] after:font-[dashicons]': expanded_2 && window 3667 .innerWidth < 3668 899, 3669 'after:ml-auto after:content-[\'\\f347\'] after:font-[dashicons]': !expanded_2 && window 3670 .innerWidth < 899 3671 }" 3672 @click="expanded_2 = ! expanded_2" class="border-b border-white mb-4 pb-2 flex"> 3673 Policies </h4> 3674 <div x-show="expanded_2" x-collapse> 3675 <div class="menu-policies-container"><ul id="menu-policies" class="menu text-[12px] list-disc pl-[20px] flex flex-col gap-[10px]"><li id="menu-item-31674" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-31674"><a href="https://gundog-journal.com/terms-and-conditions/">Terms and conditions</a></li> 3676<li id="menu-item-10173" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10173"><a href="https://gundog-journal.com/cookie-policy/">Cookie policy</a></li> 3677<li id="menu-item-10174" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-10174"><a rel="privacy-policy" href="https://gundog-journal.com/privacy-policy/">Privacy policy</a></li> 3678</ul></div> </div> 3679 3680 3681 <h4 :class="{ 3682 'after:ml-auto after:content-[\'\\f343\'] after:font-[dashicons]': expanded_2 && window 3683 .innerWidth < 3684 899, 3685 'after:ml-auto after:content-[\'\\f347\'] after:font-[dashicons]': !expanded_2 && window 3686 .innerWidth < 899 3687 }" 3688 @click="expanded_2 = ! expanded_2" class="border-b border-white mb-4 pb-2 mt-[40px] lg:mt-4 flex"> 3689 Other Interests </h4> 3690 <div x-show="expanded_2" x-collapse> 3691 <div class="menu-other-interests-container"><ul id="menu-other-interests" class="menu text-[12px] list-disc pl-[20px] flex flex-col gap-[10px]"><li id="menu-item-75895" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-75895"><a href="https://www.shootinguk.co.uk/">ShootingUK</a></li> 3692<li id="menu-item-75896" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-75896"><a href="https://fieldsports-journal.com/">Fieldsports Journal</a></li> 3693<li id="menu-item-75897" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-75897"><a href="https://airgun-world.com/">Airgun World</a></li> 3694<li id="menu-item-75898" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-75898"><a href="https://rifle-shooter.com/">Rifle Shooter</a></li> 3695<li id="menu-item-75899" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-75899"><a href="https://sporting-gun.com/">Sporting Gun</a></li> 3696<li id="menu-item-75900" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-75900"><a href="https://troutandsalmon.com/">Trout & Salmon</a></li> 3697</ul></div> </div> 3698 </div> 3699 3700 <div class="mb-[20px] lg:mb-[0] order-5 lg:order-4 flex flex-col column-4 c
3700ol-span-12 md:col-span-4 lg:col-span-2"> 3701 <h4 class="mb-4 text-[12px] pb-2">Part of Time Well Spent</h4> 3702 <a class="hover:opacity-80 flex justify-center lg:justify-start" target="_blank" 3703 href="http://twsgroup.com"> 3704 <img width="198" height="94" class="twsgroup-logo w-[250px] h-[125px] md:w-[150px] md:h-[75px] object-contain" 3705 src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20198%2094'%3E%3C/svg%3E" alt="" data-lazy-src="/app/uploads/sites/2/2024/11/Frame-17.png" /><noscript><img width="198" height="94" class="twsgroup-logo w-[250px] h-[125px] md:w-[150px] md:h-[75px] object-contain" 3706 src="/app/uploads/sites/2/2024/11/Frame-17.png" alt="" /></noscript> 3707 </a> 3708 </div> 3709 3710 <div 3711 class="hidden md:flex footer-form-container order-2 lg:order-5 flex flex-col column-5 col-span-12 md:col-span-6 lg:col-span-3"> 3712 <h4 class="mb-5 pb-2 text-[12px]">Subscribe to our newsletter today: </h4> 3713 <a href="https://gundog-journal.com/newsletter/" 3714 class="btn-normal mb-[20px] btn-primary-hover-dark text-white hover:text-white"> 3715 Sign up 3716 </a> 3717 3718 <div class="social-icons flex flex-col gap-16px mb-[20px] lg:mb-[0]"> 3719 <span class="text-white text-base">Connect with us:</span> 3720 <div class="flex"> 3721 3722 <a class="flex justify-center items-center w-[30px] h-[30px]" href="https://www.facebook.com/GundogJournal/"> 3723 <span class="sr-only">Facebook</span> 3724 <svg class="h-[1.375rem] social-icon" width="14" height="24" viewBox="0 0 14 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3725 <path d="M12.5429 13.3981L13.2041 9.08738H9.06818V6.2901C9.06818 5.11078 9.64605 3.96117 11.4985 3.96117H13.3789V0.291262C13.3789 0.291262 11.6724 0 10.0407 0C6.6344 0 4.40799 2.06447 4.40799 5.80194V9.08738H0.621582V13.3981H4.40799V23.8188C5.16731 23.938 5.94527 24 6.73809 24C7.5309 24 8.30886 23.938 9.06818 23.8188V13.3981H12.5429Z" fill="#ffffff"/> 3726</svg> 3727</a> 3728 3729 <a class="flex justify-center items-center w-[30px] h-[30px]" href="https://www.instagram.com/gundogjournal/"> 3730 <span class="sr-only">Instagram</span> 3731 <svg class="h-[1.375rem] social-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3732 <g clip-path="url(#clip0_501_3526)"> 3733 <path d="M7.03009 0.083057C5.75329 0.143297 4.88113 0.347777 4.11913 0.646337C3.33025 0.953777 2.66161 1.3661 1.99633 2.03402C1.33033 2.70242 0.921366 3.37226 0.616086 4.16186C0.320646 4.92578 0.120246 5.79842 0.0640856 7.07594C0.00792558 8.3561 -0.00479442 8.76434 0.00144558 12.0231C0.00768558 15.2813 0.0220856 15.6903 0.0830456 16.9707C0.144006 18.2472 0.347766 19.1189 0.646326 19.8814C0.954246 20.6703 1.36609 21.3387 2.03425 22.0042C2.70217 22.6697 3.37249 23.0784 4.16257 23.3839C4.92577 23.6791 5.79865 23.88 7.07593 23.9359C8.35585 23.9923 8.76457 24.0048 12.0223 23.9986C15.2815 23.9923 15.6902 23.9779 16.9702 23.9172C18.247 23.8563 19.1182 23.6518 19.8811 23.3539C20.67 23.0453 21.3386 22.6342 22.0039 21.966C22.6692 21.2981 23.0782 20.6278 23.3834 19.8377C23.6789 19.0745 23.88 18.2016 23.9354 16.9251C23.9914 15.6444 24.0046 15.2352 23.9983 11.9772C23.9921 8.71874 23.9774 8.3105 23.9167 7.03082C23.856 5.7533 23.6515 4.88186 23.3534 4.11914C23.045 3.33026 22.6337 2.66234 21.9658 1.99634C21.2978 1.33106 20.6275 0.921377 19.8374 0.616817C19.0738 0.321377 18.2014 0.120017 16.9241 0.064817C15.6444 0.00769698 15.2359 -0.00478302 11.977 0.00145698C8.71873 0.00769698 8.31025 0.021617 7.03033 0.083057M7.17025 21.7762C6.00025 21.7253 5.36497 21.5309 4.94161 21.3679C4.38097 21.151 3.98089 20.8908 3.55969 20.473C3.13945 20.0535 2.87857 19.6546 2.65969 19.0951C2.49529 18.6718 2.29729 18.0372 2.24257 16.8672C2.18305 15.6024 2.16937 15.223 2.16361 12.0187C2.15737 8.81546 2.16913 8.43578 2.22433 7.17002C2.27449 6.00098 2.47009 5.36474 2.63257 4.94186C2.84953 4.3805 3.10873 3.98114 3.52753 3.55994C3.94705 3.13898 4.34593 2.87882 4.90585 2.65994C5.32897 2.49458 5.96329 2.29826 7.13281 2.24282C8.39833 2.18282 8.77753 2.1701 11.9808 2.16386C15.1848 2.15762 15.5645 2.1689 16.8302 2.22458C17.9993 2.27546 18.6355 2.46914 19.0582 2.63282C19.6193 2.84978 20.0194 3.10826 20.4401 3.52778C20.8608 3.9473 21.1217 4.34546 21.3406 4.90658C21.5057 5.3285 21.7022 5.96378 21.7574 7.13282C21.8177 8.39834 21.8314 8.77778 21.8371 11.9813C21.8434 15.1855 21.8316 15.565 21.7762 16.83C21.7253 18 21.5311 18.6355 21.3679 19.0594C21.151 19.6195 20.8915 20.0196 20.4725 20.4408C20.0534 20.8603 19.6546 21.1219 19.0942 21.3408C18.672 21.5057 18.0367 21.7025 16.8679 21.7579C15.6024 21.8175 15.2232 21.8311 12.0187 21.8369C8.81545 21.8431 8.43625 21.8311 7.17049 21.7762M16.9526 5.58554C16.9541 6.38018 17.6004 7.02362 18.395 7.02218C19.1902 7.02074 19.8336 6.3749 19.8324 5.58002C19.8307 4.78538 19.1846 4.14146 18.3895 4.1429C17.5944 4.14434 16.951 4.79066 16.9524 5.5853M5.83849 12.0118C5.84497 15.415 8.60905 18.1678 12.0115 18.1611C15.4142 18.1543 18.1685 15.3912 18.162 11.988C18.1553 8.58602 15.391 5.83178 11.9878 5.83826C8.58529 5.84498 5.83177 8.6093 5.83849 12.0118ZM7.99993 12.0075C7.99609 9.79874 9.78385 8.00426 11.9921 8.00042C14.2008 7.9961 15.9955 9.78314 15.9998 11.9923C16.0042 14.2015 14.2164 15.9955 12.0072 15.9999C9.79873 16.0042 8.00401 14.2169 7.99993 12.0077" fill="#ffffff"/> 3734 </g>
3735 <defs> 3736 <clipPath id="clip0_501_3526"> 3737 <rect width="24" height="24" fill="white"/> 3738 </clipPath> 3739 </defs> 3740</svg> 3741</a> 3742 3743 3744 3745 3746 </div> 3747 </div> 3748 3749 3750 </div> 3751 </div> 3752 </div> 3753 </div> 3754 3755 <div class="bg-primary footer-bottom py-[10px]"> 3756 <div class="container flex flex-wrap gap-[10px] justify-center lg:justify-between "> 3757 <div class="text-center"> 3758 <a class="!text-center text-[12px] hover:text-white hover:underline" 3759 href="/sitemap_index.xml" 3760 > 3761 Sitemap </a> 3762 </div> 3763 <div class="copyright text-[12px] text-center"> 3764 <span>© Time Well Spent Group, All rights reserved. Registered in England and Wales at Companies 3765 House 3766 with company number 10204110</span> 3767 </div> 3768 </div> 3769 3770 </div> 3771 3772<!-- Netmatters Uptime Ping Test Response --> 3773</footer> 3774 </div> 3775 3776 3777<!-- Consent Management powered by Complianz | GDPR/CCPA Cookie Consent https://wordpress.org/plugins/complianz-gdpr --> 3778<div id="cmplz-cookiebanner-container"><div class="cmplz-cookiebanner cmplz-hidden banner-1 banner-a optin cmplz-center cmplz-categories-type-view-preferences" aria-modal="true" data-nosnippet="true" role="dialog" aria-live="polite" aria-labelledby="cmplz-header-1-optin" aria-describedby="cmplz-message-1-optin"> 3779 <div class="cmplz-header"> 3780 <div class="cmplz-logo"></div> 3781 <div class="cmplz-title" id="cmplz-header-1-optin">Manage Consent</div> 3782 <div class="cmplz-close" tabindex="0" role="button" aria-label="Close dialog"> 3783 <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="times" class="svg-inline--fa fa-times fa-w-11" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 352 512"><path fill="currentColor" d="M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"></path></svg> 3784 </div> 3785 </div> 3786 3787 <div class="cmplz-divider cmplz-divider-header"></div> 3788 <div class="cmplz-body"> 3789 <div class="cmplz-message" id="cmplz-message-1-optin">To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.</div> 3790 <!-- categories start --> 3791 <div class="cmplz-categories"> 3792 <details class="cmplz-category cmplz-functional" > 3793 <summary> 3794 <span class="cmplz-category-header"> 3795 <span class="cmplz-category-title">Functional</span> 3796 <span class='cmplz-always-active'> 3797 <span class="cmplz-banner-checkbox"> 3798 <input type="checkbox" 3799 id="cmplz-functional-optin" 3800 data-category="cmplz_functional" 3801 class="cmplz-consent-checkbox cmplz-functional" 3802 size="40" 3803 value="1"/> 3804 <label class="cmplz-label" for="cmplz-functional-optin" tabindex="0"><span class="screen-reader-text">Functional</span></label> 3805 </span> 3806 Always active </span> 3807 <span class="cmplz-icon cmplz-open"> 3808 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" height="18" ><path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg> 3809 </span> 3810 </span> 3811 </summary> 3812 <div class="cmplz-description"> 3813 <span class="cmplz-description-functional">The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.</span> 3814 </div> 3815 </details> 3816 3817 <details class="cmplz-category cmplz-preferences" > 3818 <summary> 3819 <span class="cmplz-category-header"> 3820 <span class="cmplz-category-title">Preferences</span> 3821 <span class="cmplz-banner-checkbox"> 3822 <input type="checkbox" 3823 id="cmplz-preferences-optin" 3824 data-category="cmplz_preferences" 3825 class="cmplz-consent-checkbox cmplz-preferences" 3826 size="40" 3827 value="1"/> 3828 <label class="cmplz-label" for="cmplz-preferences-optin" tabindex="0"><span class="screen-reader-text">Preferences</span></label> 3829 </span> 3830 <span class="cmplz-icon cmplz-open"> 3831 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" height="18" >
3831<path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg> 3832 </span> 3833 </span> 3834 </summary> 3835 <div class="cmplz-description"> 3836 <span class="cmplz-description-preferences">The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.</span> 3837 </div> 3838 </details> 3839 3840 <details class="cmplz-category cmplz-statistics" > 3841 <summary> 3842 <span class="cmplz-category-header"> 3843 <span class="cmplz-category-title">Statistics</span> 3844 <span class="cmplz-banner-checkbox"> 3845 <input type="checkbox" 3846 id="cmplz-statistics-optin" 3847 data-category="cmplz_statistics" 3848 class="cmplz-consent-checkbox cmplz-statistics" 3849 size="40" 3850 value="1"/> 3851 <label class="cmplz-label" for="cmplz-statistics-optin" tabindex="0"><span class="screen-reader-text">Statistics</span></label> 3852 </span> 3853 <span class="cmplz-icon cmplz-open"> 3854 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" height="18" ><path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg> 3855 </span> 3856 </span> 3857 </summary> 3858 <div class="cmplz-description"> 3859 <span class="cmplz-description-statistics">The technical storage or access that is used exclusively for statistical purposes.</span> 3860 <span class="cmplz-description-statistics-anonymous">The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.</span> 3861 </div> 3862 </details> 3863 <details class="cmplz-category cmplz-marketing" > 3864 <summary> 3865 <span class="cmplz-category-header"> 3866 <span class="cmplz-category-title">Marketing</span> 3867 <span class="cmplz-banner-checkbox"> 3868 <input type="checkbox" 3869 id="cmplz-marketing-optin" 3870 data-category="cmplz_marketing" 3871 class="cmplz-consent-checkbox cmplz-marketing" 3872 size="40" 3873 value="1"/> 3874 <label class="cmplz-label" for="cmplz-marketing-optin" tabindex="0"><span class="screen-reader-text">Marketing</span></label> 3875 </span> 3876 <span class="cmplz-icon cmplz-open"> 3877 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" height="18" ><path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg> 3878 </span> 3879 </span> 3880 </summary> 3881 <div class="cmplz-description"> 3882 <span class="cmplz-description-marketing">The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.</span> 3883 </div> 3884 </details> 3885 </div><!-- categories end --> 3886 </div> 3887 3888 <div class="cmplz-links cmplz-information"> 3889 <a class="cmplz-link cmplz-manage-options cookie-statement" href="#" data-relative_url="#cmplz-manage-consent-container">Manage options</a> 3890 <a class="cmplz-link cmplz-manage-third-parties cookie-statement" href="#" data-relative_url="#cmplz-cookies-overview">Manage services</a> 3891 <a class="cmplz-link cmplz-manage-vendors tcf cookie-statement" href="#" data-relative_url="#cmplz-tcf-wrapper">Manage {vendor_count} vendors</a> 3892 <a class="cmplz-link cmplz-external cmplz-read-more-purposes tcf" target="_blank" rel="noopener noreferrer nofollow" href="https://cookiedatabase.org/tcf/purposes/">Read more about these purposes</a> 3893 </div> 3894 3895 <div class="cmplz-divider cmplz-footer"></div> 3896 3897 <div class="cmplz-buttons"> 3898 <button class="cmplz-btn cmplz-accept">Accept</button> 3899 <button class="cmplz-btn cmplz-deny">Deny</button> 3900 <button class="cmplz-btn cmplz-view-preferences">View preferences</button> 3901 <button class="cmplz-btn cmplz-save-preferences">Save preferences</button> 3902 <a class="cmplz-btn cmplz-manage-options tcf cookie-statement" href="#" data-relative_url="#cmplz-manage-consent-container">View preferences</a> 3903 </div> 3904 3905 <div class="cmplz-links cmplz-documents"> 3906 <a class="cmplz-link cookie-statement" href="#" data-relative_url="">{title}</a> 3907 <a class="cmplz-link privacy-statement" href="#" data-relative_url="">{title}</a> 3908 <a class="cmplz-link impressum" href="#" data-relative_url="">{title}</a> 3909 </div> 3910 3911</div> 3912</div> 3913 <div id="cmplz-manage-consent" data-nosnippet="true"><button class="cmplz-btn cmplz-hidden cmplz-manage-consent manage-consent-1">
3913Manage consent</button> 3914 3915</div><div class="wppopups-whole" style="display: none"></div>
3915<script src="https://gundog-journal.com/wp-includes/js/dist/hooks.min.js?ver=4d63a3d491d11ffd8ac6" id="wp-hooks-js"></script>
vendor: 1 bytes, line 3915
3915
3916<script id="wppopups-js-extra"> 3917var wppopups_vars = {"is_admin":"","ajax_url":"https:\/\/gundog-journal.com\/wp-admin\/admin-ajax.php","pid":"21","is_front_page":"","is_blog_page":"","is_category":"1","site_url":"https:\/\/gundog-journal.com","is_archive":"1","is_search":"","is_singular":"","is_preview":"","facebook":"","twitter":"","val_required":"This field is required.","val_url":"Please enter a valid URL.","val_email":"Please enter a valid email address.","val_number":"Please enter a valid number.","val_checklimit":"You have exceeded the number of allowed selections: {#}.","val_limit_characters":"{count} of {limit} max characters.","val_limit_words":"{count} of {limit} max words.","disable_form_reopen":"__return_false"}; 3918</script>
vendor: 1 bytes, line 3918
3918
3919<script src="https://www.shootinguk.co.uk/app/plugins/wp-popups-lite/src/assets/js/wppopups.js?ver=2.2.0.2" id="wppopups-js" data-rocket-defer defer></script>
vendor: 1 bytes, line 3919
3919
3920<script id="adrotate-clicker-js-extra"> 3921var click_object = {"ajax_url":"https:\/\/gundog-journal.com\/wp-admin\/admin-ajax.php"}; 3922</script>
vendor: 1 bytes, line 3922
3922
3923<script src="https://www.shootinguk.co.uk/app/plugins/adrotate/library/jquery.clicker.js" id="adrotate-clicker-js" data-rocket-defer defer></script>
vendor: 1 bytes, line 3923
3923
3924<script src="https://gundog-journal.com/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3" id="jquery-ui-core-js" data-rocket-defer defer></script>
vendor: 1 bytes, line 3924
3924
3925<script src="https://gundog-journal.com/wp-includes/js/jquery/ui/datepicker.min.js?ver=1.13.3" id="jquery-ui-datepicker-js" data-rocket-defer defer></script>
vendor: 1 bytes, line 3925
3925
3926<script id="jquery-ui-datepicker-js-after">window.addEventListener('DOMContentLoaded', function() { 3927jQuery(function(jQuery){jQuery.datepicker.setDefaults({"closeText":"Close","currentText":"Today","monthNames":["January","February","March","April","May","June","July","August","September","October","November","December"],"monthNamesShort":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"nextText":"Next","prevText":"Previous","dayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dayNamesShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dayNamesMin":["S","M","T","W","T","F","S"],"dateFormat":"d MM yy","firstDay":1,"isRTL":false});}); 3928});</script>
vendor: 1 bytes, line 3928
3928
3929<script id="rocket-browser-checker-js-after"> 3930"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}(); 3931</script>
vendor: 1 bytes, line 3931
3931
3932<script id="rocket-preload-links-js-extra"> 3933var RocketPreloadLinksConfig = {"excludeUris":"\/(?:.+\/)?feed(?:\/(?:.+\/?)?)?$|\/(?:.+\/)?embed\/|http:\/\/(\/%5B\/%5D+)?\/(index.php\/)?(.*)wp-json(\/.*|$)|\/refer\/|\/go\/|\/recommend\/|\/recommends\/","usesTrailingSlash":"1","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php|html|htm","siteUrl":"https:\/\/gundog-journal.com","onHoverDelay":"100","rateThrottle":"3"}; 3934</script>
vendor: 1 bytes, line 3934
3934
3935<script id="rocket-preload-links-js-after"> 3936(function() { 3937"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareUrl(t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run(); 3938}()); 3939</script>
vendor: 1 bytes, line 3939
3939
3940<script id="rocket_lazyload_css-js-extra"> 3941var rocket_lazyload_css_data = {"threshold":"300"}; 3942</script>
vendor: 1 bytes, line 3942
3942
3943<script id="rocket_lazyload_css-js-after"> 3944!function o(n,c,a){function u(t,e){if(!c[t]){if(!n[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(s)return s(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}r=c[t]={exports:{}},n[t][0].call(r.exports,function(e){return u(n[t][1][e]||e)},r,r.exports,o,n,c,a)}return c[t].exports}for(var s="function"==typeof require&&require,e=0;e<a.length;e++)u(a[e]);return u}({1:[function(e,t,r){"use strict";{const c="undefined"==typeof rocket_pairs?[]:rocket_pairs,a=(("undefined"==typeof rocket_excluded_pairs?[]:rocket_excluded_pairs).map(t=>{var e=t.selector;document.querySelectorAll(e).forEach(e=>{e.setAttribute("data-rocket-lazy-bg-"+t.hash,"excluded")})}),document.querySelector("#wpr-lazyload-bg-container"));var o=rocket_lazyload_css_data.threshold||300;const u=new IntersectionObserver(e=>{e.forEach(t=>{t.isIntersecting&&c.filter(e=>t.target.matches(e.selector)).map(t=>{var e;t&&((e=document.createElement("style")).textContent=t.style,a.insertAdjacentElement("afterend",e),t.elements.forEach(e=>{u.unobserve(e),e.setAttribute("data-rocket-lazy-bg-"+t.hash,"loaded")}))})})},{rootMargin:o+"px"});function n(){0<(0<arguments.length&&void 0!==arguments[0]?arguments[0]:[]).length&&c.forEach(t=>{try{document.querySelectorAll(t.selector).forEach(e=>{"loaded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&"excluded"!==e.getAttribute("data-rocket-lazy-bg-"+t.hash)&&(u.observe(e),(t.elements||=[]).push(e))})}catch(e){console.error(e)}})}n(),function(){const r=window.MutationObserver;return function(e,t){if(e&&1===e.nodeType)return(t=new r(t)).observe(e,{attributes:!0,childList:!0,subtree:!0}),t}}()(document.querySelector("body"),n)}},{}]},{},[1]); 3945</script>
vendor: 1 bytes, line 3945
3945
3946<script src="https://www.shootinguk.co.uk/app/themes/roots-sage/resources/scripts/flowbite/flowbite.min.js" id="flowbite-js-js" data-rocket-defer defer></script>
vendor: 1 bytes, line 3946
3946
3947<script src="https://www.shootinguk.co.uk/app/themes/roots-sage/resources/scripts/swiper/swiper.min.js" id="swiper-js-js" data-rocket-defer defer></script>
vendor: 61 bytes, lines 3947-3948
3947 3948<script src="https://www.google.com/recaptcha/api.js?render=
39486Lc7EbYqAAAAACJ8DDnekgslgYuG9sBDDTmYgbWv
vendor: 49 bytes, line 3948
3948&ver=3.0" id="google-recaptcha-js"></script>
3949<script src="https://gundog-journal.com/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0" id="wp-polyfill-js"></script>
vendor: 1 bytes, line 3949
3949
3950<script id="wpcf7-recaptcha-js-before"> 3951var wpcf7_recaptcha = { 3952 "sitekey": "6Lc7EbYqAAAAACJ8DDnekgslgYuG9sBDDTmYgbWv", 3953 "actions": { 3954 "homepage": "homepage", 3955 "contactform": "contactform" 3956 } 3957}; 3958</script>
vendor: 1 bytes, line 3958
3958
3959<script src="https://www.shootinguk.co.uk/app/plugins/contact-form-7/modules/recaptcha/index.js?ver=6.1.7" id="wpcf7-recaptcha-js" data-rocket-defer defer></script>
vendor: 1 bytes, line 3959
3959
3960<script id="app/0-js-before"> 3961(()=>{"use strict";var e,r={},o={};function t(e){var n=o[e];if(void 0!==n)return n.exports;var a=o[e]={exports:{}};return r[e](a,a.exports,t),a.exports}t.m=r,e=[],t.O=(r,o,n,a)=>{if(!o){var i=1/0;for(u=0;u<e.length;u++){o=e[u][0],n=e[u][1],a=e[u][2];for(var l=!0,s=0;s<o.length;s++)(!1&a||i>=a)&&Object.keys(t.O).every((e=>t.O[e](o[s])))?o.splice(s--,1):(l=!1,a<i&&(i=a));if(l){e.splice(u--,1);var f=n();void 0!==f&&(r=f)}}return r}a=a||0;for(var u=e.length;u>0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[o,n,a]},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e={666:0};t.O.j=r=>0===e[r];var r=(r,o)=>{var n,a,i=o[0],l=o[1],s=o[2],f=0;if(i.some((r=>0!==e[r]))){for(n in l)t.o(l,n)&&(t.m[n]=l[n]);if(s)var u=s(t)}for(r&&r(o);f<i.length;f++)a=i[f],t.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return t.O(u)},o=self.webpackChunk_roots_bud_sage_sage=self.webpackChunk_roots_bud_sage_sage||[];o.forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o))})()})(); 3962</script>
vendor: 1 bytes, line 3962
3962
3963<script src="https://www.shootinguk.co.uk/app/themes/roots-sage/public/js/app.e60c8c.js" id="app/0-js" data-rocket-defer defer></script>
vendor: 1 bytes, line 3963
3963
3964<script src="https://gundog-journal.com/wp-includes/js/hoverIntent.min.js?ver=1.10.2" id="hoverIntent-js" data-rocket-defer defer></script>
vendor: 1 bytes, line 3964
3964
3965<script src="https://www.shootinguk.co.uk/app/plugins/megamenu/js/maxmegamenu.js?ver=3.4.1" id="megamenu-js" data-rocket-defer defer></script>
vendor: 1 bytes, line 3965
3965
3966<script id="cmplz-cookiebanner-js-extra"> 3967var complianz = {"prefix":"cmplz_","user_banner_id":"1","set_cookies":[],"block_ajax_content":"","banner_version":"30","version":"7.3.0","store_consent":"","do_not_track_enabled":"1","consenttype":"optin","region":"uk","geoip":"","dismiss_timeout":"","disable_cookiebanner":"1","soft_cookiewall":"1","dismiss_on_scroll":"","cookie_expiry":"365","url":"https:\/\/gundog-journal.com\/wp-json\/complianz\/v1\/","locale":"lang=en&locale=en_US","set_cookies_on_root":"","cookie_domain":"","current_policy_id":"35","cookie_path":"\/","categories":{"statistics":"statistics","marketing":"marketing"},"tcf_active":"","placeholdertext":"Click to accept {category} cookies and enable this content","css_file":"https:\/\/www.shootinguk.co.uk\/app\/uploads\/sites\/2\/complianz\/css\/banner-{banner_id}-{type}.css?v=30","page_links":{"uk":{"cookie-statement":{"title":"Cookie Policy","url":"https:\/\/gundog-journal.com\/cookie-policy\/"},"privacy-statement":{"title":"Privacy policy","url":"https:\/\/gundog-journal.com\/privacy-policy\/"}}},"tm_categories":"1","forceEnableStats":"","preview":"","clean_cookies":"","aria_label":"Click to accept {category} cookies and enable this content"}; 3968</script>
vendor: 1 bytes, line 3968
3968
3969<script defer src="https://www.shootinguk.co.uk/app/plugins/complianz-gdpr/cookiebanner/js/complianz.min.js?ver=1739374094" id="cmplz-cookiebanner-js"></script>
vendor: 1 bytes, line 3969
3969
3970<script id="cmplz-cookiebanner-js-after"> 3971document.addEventListener("cmplz_enable_category", function () { 3972 document.querySelectorAll('[data-rocket-lazyload]').forEach(obj => { 3973 if (obj.hasAttribute('data-lazy-src')) { 3974 obj.setAttribute('src', obj.getAttribute('data-lazy-src')); 3975 } 3976 }); 3977 }); 3978 3979 3980</script>
3980 3981<!-- Statistics script Complianz GDPR/CCPA --> 3982
3982<script data-category="functional">
vendor: 339 bytes, lines 3982-3987
3982 3983 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 3984 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 3985 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 3986 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 3987})(window,document,'script','dataLayer','
3987GTM-KZ46D2PN
vendor: 10 bytes, lines 3987-3988
3987'); 3988
3988</script>
3988<script id="tws-crossword-deadline" data-no-optimize="1" data-no-defer="1" data-no-minify="1" data-cfasync="false"> 3989(function () { 3990 var TZ = "Europe\/London"; 3991 var CLASS = "tws-crossword-deadline"; 3992 var EVERY = 28; 3993 var DEFAULT = "j F, Y"; 3994 3995 var DAY = 86400000; 3996 var DAYS = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']; 3997 var MONTHS = ['January','February','March','April','May','June','July','August', 3998 'September','October','November','December']; 3999 4000 // All arithmetic is done on whole UTC days. Local midnights either side of a clock 4001 // change are not exactly 24 hours apart, which would round a long cycle the wrong way. 4002 function todayAtSite() { 4003 var now = new Date(); 4004 try { 4005 var p = new Intl.DateTimeFormat('en-GB', { 4006 timeZone: TZ, year: 'numeric', month: '2-digit', day: '2-digit' 4007 }).formatToParts(now).reduce(function (acc, x) { acc[x.type] = x.value; return acc; }, {}); 4008 return Date.UTC(+p.year, +p.month - 1, +p.day); 4009 } catch (e) { 4010 // Timezone unsupported or invalid: fall back to the visitor's own clock. 4011 return Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()); 4012 } 4013 } 4014 4015 // Rejects anything that is not a real calendar date, so 2026-02-31 is refused here just 4016 // as it is in PHP rather than silently rolling over into March. 4017 function parseStart(s) { 4018 var m = /^(\d{4})-(\d{2})-(\d{2})$/.exec(String(s || '').replace(/^\s+|\s+$/g, '')); 4019 if (!m) { return null; } 4020 var t = Date.UTC(+m[1], +m[2] - 1, +m[3]); 4021 var d = new Date(t); 4022 if (d.getUTCFullYear() !== +m[1] || d.getUTCMonth() !== +m[2] - 1 || d.getUTCDate() !== +m[3]) { 4023 return null; 4024 } 4025 return t; 4026 } 4027 4028 function deadline(anchor, every, skip) { 4029 var today = todayAtSite(); 4030 var span = Math.max(1, every) * DAY; 4031 var elapsed = today - anchor; 4032 var cycles = elapsed > 0 ? Math.ceil(elapsed / span) : 0; 4033 4034 return new Date(anchor + (cycles + skip) * span); 4035 } 4036 4037 function pad(n) { return n < 10 ? '0' + n : '' + n; } 4038 4039 function ordinal(n) { 4040 if (n > 3 && n < 21) { return 'th'; } 4041 switch (n % 10) { 4042 case 1: return 'st'; 4043 case 2: return 'nd'; 4044 case 3: return 'rd'; 4045 default: return 'th'; 4046 } 4047 } 4048 4049 // The subset of PHP's date() tokens that makes sense for a plain date. 4050 // A backslash escapes the next character, as it does in PHP. 4051 function format(d, fmt) { 4052 var out = ''; 4053 for (var i = 0; i < fmt.length; i++) { 4054 var c = fmt.charAt(i); 4055 if (c === '\\') { out += fmt.charAt(++i) || ''; continue; } 4056 switch (c) { 4057 case 'j': out += d.getUTCDate(); break; 4058 case 'd': out += pad(d.getUTCDate()); break; 4059 case 'S': out += ordinal(d.getUTCDate()); break; 4060 case 'l': out += DAYS[d.getUTCDay()]; break; 4061 case 'D': out += DAYS[d.getUTCDay()].slice(0, 3); break; 4062 case 'N': out += (d.getUTCDay() === 0 ? 7 : d.getUTCDay()); break; 4063 case 'w': out += d.getUTCDay(); break; 4064 case 'F': out += MONTHS[d.getUTCMonth()]; break; 4065 case 'M': out += MONTHS[d.getUTCMonth()].slice(0, 3); break; 4066 case 'n': out += (d.getUTCMonth() + 1); break; 4067 case 'm': out += pad(d.getUTCMonth() + 1); break; 4068 case 'Y': out += d.getUTCFullYear(); break; 4069 case 'y': out += pad(d.getUTCFullYear() % 100); break; 4070 default: out += c; 4071 } 4072 } 4073 return out; 4074 } 4075 4076 function iso(d) { 4077 return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()); 4078 } 4079 4080 function fix(el) { 4081 var anchor = parseStart(el.getAttribute('data-start')); 4082 4083 // No usable start date. PHP has already flagged it to editors; leave it alone. 4084 if (anchor === null) { return; } 4085 4086 var every = parseInt(el.getAttribute('data-every'), 10); 4087 if (isNaN(every) || every < 1) { every = EVERY; } 4088 4089 var skip = parseInt(el.getAttribute('data-skip'), 10); 4090 if (isNaN(skip) || skip < 0) { skip = 0; } 4091 4092 var d = deadline(anchor, every, skip); 4093 var want = iso(d); 4094 4095 // Leave it alone if PHP already wrote the right date and there is text there. 4096 if (el.getAttribute('data-date') === want && el.textContent.trim() !== '') { return; } 4097 4098 el.textContent = format(d, el.getAttribute('data-format') || DEFAULT); 4099 el.setAttribute('data-date', want); 4100 } 4101 4102 function refresh() { 4103 var nodes = document.querySelectorAll('.' + CLASS); 4104 for (var i = 0; i < nodes.length; i++) { fix(nodes[i]); } 4105 } 4106 4107 if (document.readyState === 'loading') { 4108 document.addEventListener('DOMContentLoaded', refresh); 4109 } else { 4110 refresh(); 4111 } 4112 4113 // A page restored from the back/forward cache, or left open overnight and returned to, 4114 // gets a fresh reading rather than yesterday's. 4115 window.addEventListener('pageshow', refresh); 4116 document.addEventListener('visibilitychange', function () { 4117 if (!document.hidden) { refresh(); } 4118 }); 4119}()); 4120</script>
4120 4121
4121<script id="tws-comp-js"> 4122(function(){ 4123 var AJAX = "\/wp-admin\/admin-ajax.php", DELAY = 8000; 4124 var store = { 4125 get: function(k){ try { return window.localStorage.getItem(k); } catch (e) { return null; } }, 4126 set: function(k, v){ try { window.localStorage.setItem(k, v); } catch (e) {} } 4127 }; 4128 function leftText(closes, now){ 4129 if (now > closes) { return 'Closed'; } 4130 var a = new Date(now * 1000), b = new Date(closes * 1000); 4131 a.setHours(0, 0, 0, 0); b.setHours(0, 0, 0, 0); 4132 var d = Math.round((b - a) / 864e5); 4133 if (d <= 0) { return 'Last chance â closes tonight'; } 4134 if (d === 1) { return 'Closes tomorrow'; } 4135 if (d <= 30) { return 'Closes in ' + d + ' days'; } 4136 return null; // leave the server's date text alone 4137 } 4138 function tick(){ 4139 var now = Math.floor(Date.now() / 1000); 4140 document.querySelectorAll('[data-tws-comp-closes]').forEach(function(el){ 4141 var closes = parseInt(el.getAttribute('data-tws-comp-closes'), 10); 4142 if (!closes) { return; } 4143 if (now > closes) { 4144 if (el.hasAttribute('data-tws-comp-expire')) { 4145 var band = el.closest('[data-tws-comp-band]'); 4146 el.remove(); 4147 if (band) { 4148 if (!band.querySelector('[data-tws-comp]')) { 4149 var sec = band.closest('.tws-comp-section'); 4150 (sec || band).remove(); 4151 } 4152 } 4153 } 4154 return; 4155 } 4156 var t = leftText(closes, now); 4157 if (t !== null) { 4158 el.querySelectorAll('[data-tws-comp-left]').forEach(function(s){ 4159 s.textContent = s.hasAttribute('data-lower') ? t.charAt(0).toLowerCase() + t.slice(1) : t; 4160 }); 4161 } 4162 var dhm = el.querySelector('[data-tws-comp-dhm]'); 4163 if (dhm) { 4164 var s = closes - now; 4165 dhm.querySelector('[data-d]').textContent = Math.floor(s / 86400); 4166 dhm.querySelector('[data-h]').textContent = Math.floor(s % 86400 / 3600); 4167 dhm.querySelector('[data-m]').textContent = Math.floor(s % 3600 / 60); 4168 } 4169 }); 4170 } 4171 function hit(el){ 4172 var id = el.getAttribute('data-tws-comp'), place = el.getAttribute('data-tws-comp-place'); 4173 try { 4174 window.dataLayer = window.dataLayer || []; 4175 window.dataLayer.push({ event: 'tws_competition_click', tws_competition: el.getAttribute('data-tws-comp-slug'), tws_placement: place }); 4176 } catch (e) {} 4177 try { 4178 var f = new FormData(); f.append('action', 'tws_comp_click'); f.append('c', id); f.append('p', place); 4179 if (navigator.sendBeacon) { navigator.sendBeacon(AJAX, f); } 4180 else { fetch(AJAX, { method: 'POST', body: f, keepalive: true, credentials: 'omit' }); } 4181 } catch (e) {} 4182 } 4183 function seen(el, kind){ store.set('tws_comp_' + kind + '_' + el.getAttribute('data-tws-comp'), String(Date.now())); } 4184 document.addEventListener('click', function(e){ 4185 var go = e.target.closest('[data-tws-comp-go]'); 4186 if (go) { 4187 var box = go.closest('[data-tws-comp]'); 4188 if (box) { 4189 hit(box); 4190 if (box.classList.contains('tws-comp-toast')) { seen(box, 'toast'); } 4191 } 4192 } 4193 var x = e.target.closest('[data-tws-comp-close]'); 4194 if (x) { 4195 var b = x.closest('[data-tws-comp]'); 4196 if (b) { 4197 seen(b, b.classList.contains('tws-comp-bar') ? 'bar' : 'toast'); 4198 b.remove(); 4199 } 4200 } 4201 }); 4202 document.addEventListener('click', function(e){ 4203 var t = e.target.closest('[data-tws-cp-thumb]'); 4204 if (!t) { return; } 4205 var hero = t.closest('.tws-cp-hero'), main = hero ? hero.querySelector('[data-tws-cp-main]') : null, small = t.querySelector('img'); 4206 if (!main || !small) { return; } 4207 var credit = hero.querySelector('[data-tws-cp-credit]'); 4208 var was = { src: main.getAttribute('src'), alt: main.getAttribute('alt'), credit: credit ? credit.textContent : (main.getAttribute('data-credit') || '') }; 4209 main.removeAttribute('srcset'); 4210 main.setAttribute('src', t.getAttribute('data-full') || small.getAttribute('src')); 4211 main.setAttribute('alt', small.getAttribute('alt') || ''); 4212 if (credit) { credit.textContent = t.getAttribute('data-credit') || ''; credit.hidden = !credit.textContent; } 4213 small.setAttribute('src', was.src); 4214 small.setAttribute('alt', was.alt || ''); 4215 t.setAttribute('data-full', was.src); 4216 t.setAttribute('data-credit', was.credit); 4217 }); 4218 // Side strip arrows: one picture per press; each arrow hides at its end of the strip (1.8.0). 4219 function arrows(side){
4220 var strip = side.querySelector('[data-tws-cp-strip]'), up = side.querySelector('.tws-cp-arrow--up'), down = side.querySelector('.tws-cp-arrow--down'); 4221 if (!strip || !up || !down) { return; } 4222 function state(){ 4223 up.disabled = strip.scrollTop <= 2; 4224 down.disabled = strip.scrollTop + strip.clientHeight >= strip.scrollHeight - 2; 4225 } 4226 side.addEventListener('click', function(e){ 4227 var b = e.target.closest('[data-tws-cp-scroll]'); 4228 if (!b) { return; } 4229 var first = strip.querySelector('.tws-cp-thumb'); 4230 var step = first ? first.offsetHeight + 6 : strip.clientHeight / 3; 4231 strip.scrollBy({ top: step * parseInt(b.getAttribute('data-tws-cp-scroll'), 10), behavior: 'smooth' }); 4232 }); 4233 strip.addEventListener('scroll', state, { passive: true }); 4234 state(); 4235 } 4236 document.querySelectorAll('.tws-cp-side--more').forEach(arrows); 4237 function popups(){ 4238 var mobile = window.matchMedia('(max-width: 767px)').matches, barShown = false; 4239 var bar = document.querySelector('.tws-comp-bar'); 4240 if (bar) { 4241 var last = parseInt(store.get('tws_comp_bar_' + bar.getAttribute('data-tws-comp')) || '0', 10); 4242 if (mobile) { 4243 if (Date.now() - last > 864e5) { bar.hidden = false; barShown = true; } 4244 } 4245 } 4246 if (mobile) { 4247 if (barShown) { return; } // one thing at a time on a phone 4248 } 4249 var toasts = document.querySelectorAll('.tws-comp-toast'), pick = null; 4250 for (var i = 0; i < toasts.length; i++) { 4251 if (!store.get('tws_comp_toast_' + toasts[i].getAttribute('data-tws-comp'))) { pick = toasts[i]; break; } 4252 } 4253 if (!pick) { return; } 4254 setTimeout(function(){ 4255 if (!document.body.contains(pick)) { return; } 4256 pick.hidden = false; 4257 seen(pick, 'toast'); 4258 requestAnimationFrame(function(){ pick.classList.add('is-in'); }); 4259 }, DELAY); 4260 } 4261 function go(){ tick(); popups(); setInterval(tick, 30000); } 4262 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', go); } else { go(); } 4263})(); 4264</script>
4264 4265
4265<script id="tws-comp-closed-js"> 4266(function(){ 4267 var MARK = '\u2060', WORD = 'Closed:'; 4268 function run(){ 4269 if (!document.body) { return; } 4270 var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null), hits = [], n; 4271 while ((n = walker.nextNode())) { 4272 if (n.nodeValue.indexOf(MARK + WORD) !== -1) { hits.push(n); } 4273 } 4274 hits.forEach(function(node){ 4275 var p = node.nodeValue.indexOf(MARK + WORD); 4276 var before = node.nodeValue.slice(0, p), after = node.nodeValue.slice(p + MARK.length + WORD.length); 4277 var span = document.createElement('span'); 4278 span.className = 'tws-comp-closed'; 4279 span.textContent = WORD; 4280 var frag = document.createDocumentFragment(); 4281 if (before) { frag.appendChild(document.createTextNode(before)); } 4282 frag.appendChild(span); 4283 frag.appendChild(document.createTextNode(after)); 4284 node.parentNode.replaceChild(frag, node); 4285 }); 4286 } 4287 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', run); } else { run(); } 4288})(); 4289</script>
4289 4290 <div class="tws-mp-source" hidden aria-hidden="true" data-tws-mobile-panel> 4291 4292 <div class="tws-mp-head" data-tws-mp-block="head"> 4293 <button type="button" class="tws-mp-close" data-tws-mp-close> 4294 <span class="screen-reader-text">Close menu</span> 4295 <svg viewBox="0 0 24 24" aria-hidden="true" focusable="false" 4296 fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round"> 4297 <path d="M5 5 19 19M19 5 5 19"/> 4298 </svg> 4299 </button> 4300 4301 <img width="261" height="73" class="tws-mp-logo no-lazy skip-lazy" 4302 data-no-lazy="1" 4303 loading="eager" 4304 fetchpriority="high" 4305 src="/app/uploads/sites/2/2024/11/shootinguklogo-160-1.png" 4306 alt="Gundog Journal"> 4307 </div> 4308 4309 <form class="tws-mp-search" data-tws-mp-block="search" role="search" method="get" 4310 action="https://gundog-journal.com/search/"> 4311 <svg class="tws-mp-mag" viewBox="0 0 24 24" fill="none" stroke="currentColor" 4312 stroke-width="2.2" aria-hidden="true" focusable="false"> 4313 <circle cx="10.5" cy="10.5" r="6.5"/><path d="M15.5 15.5 21 21"/> 4314 </svg> 4315 <label class="screen-reader-text" for="tws-mp-q">Search</label> 4316 <input type="search" name="_sf_s" id="tws-mp-q" autocomplete="off" 4317 placeholder="Search Gundog Journalâ¦"> 4318 <button type="submit" class="tws-mp-go">GO</button> 4319 </form> 4320 4321 <div class="tws-mp-foot" data-tws-mp-block="foot"> 4322 <a class="tws-mp-subscribe" href="https://shop.twsgroup.com/subscribe/gundog-journal"> 4323 Subscribe to Gundog Journal <small>Print & digital · TWS Shop</small> 4324 </a> 4325 4326 <p class="tws-mp-follow">Follow us</p> 4327 <div class="tws-mp-socials"><a class="tws-mp-social" href="https://www.facebook.com/GundogJournal/" target="_blank" rel="noopener noreferrer"><span class="screen-reader-text">Facebook</span><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M13.5 22v-9h3l.45-3.5H13.5V7.25c0-1 .28-1.7 1.72-1.7h1.84V2.42A24.6 24.6 0 0 0 14.37 2.3c-2.66 0-4.48 1.62-4.48 4.6V9.5H7v3.5h2.89V22h3.61z"/></svg></a><a class="tws-mp-social" href="https://www.instagram.com/gundogjournal/" target="_blank" rel="noopener noreferrer"><span class="screen-reader-text">Instagram</span><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 2.16c3.2 0 3.58.01 4.85.07 3.25.15 4.77 1.69 4.92 4.92.06 1.27.07 1.65.07 4.85s-.01 3.58-.07 4.85c-.15 3.23-1.66 4.77-4.92 4.92-1.27.06-1.65.07-4.85.07s-3.58-.01-4.85-.07c-3.26-.15-4.77-1.7-4.92-4.92-.06-1.27-.07-1.65-.07-4.85s.01-3.58.07-4.85C2.38 3.92 3.9 2.38 7.15 2.23 8.42 2.17 8.8 2.16 12 2.16zm0 5.68a4.16 4.16 0 1 0 0 8.32 4.16 4.16 0 0 0 0-8.32zm0 6.86a2.7 2.7 0 1 1 0-5.4 2.7 2.7 0 0 1 0 5.4zm5.27-7.03a.97.97 0 1 1-1.94 0 .97.97 0 0 1 1.94 0z"/></svg></a></div> 4328 </div> 4329 4330</div> 4331 <style id="tws-new-article-toast-css"> 4332.tws-toast { 4333 /* Accent comes from the Primary colour on Theme Settings; the two font variables are 4334 overwritten at runtime with whatever this site's own stylesheets resolve to, so nothing 4335 here needs a per-site rule. The values below are only what is used before that happens, 4336 or if font matching is switched off. */ 4337 --tws-toast-accent: #b38750; 4338 --tws-toast-heading: Georgia, 'Times New Roman', serif; 4339 --tws-toast-body: Helvetica, Arial, sans-serif; 4340 4341 position: fixed; 4342 top: calc(var(--tws-header-h, 126px) + 16px); 4343 right: 20px; 4344 width: 380px; 4345 max-width: calc(100vw - 32px); 4346 z-index: 99998; /* above the fixed header (9999), below the sticky ad (99999) */ 4347 background: #fff; 4348 border-top: 3px solid var(--tws-toast-accent); 4349 border-radius: 4px; 4350 box-shadow: 0 6px 28px rgba(0,0,0,.22), 0 1px 3px rgba(0,0,0,.12); 4351 overflow: hidden; 4352 animation: tws-toast-in .38s cubic-bezier(.16,.84,.44,1) both; 4353} 4354.tws-toast[hidden] { display: none; } 4355.tws-toast * { box-sizing: border-box; } 4356.tws-toast__inner { 4357 display: flex; 4358 gap: 12px; 4359 align-items: flex-start; 4360 padding: 12px 12px 12px 14px; 4361 text-decoration: none; 4362 color: inherit; 4363} 4364.tws-toast__inner:hover, .tws-toast__inner:focus { text-decoration: none; } 4365.tws-toast__thumb { 4366 display: block; 4367 flex: 0 0 84px; 4368 width: 84px; 4369 height: 84px; 4370 border-radius: 3px; 4371 overflow: hidden; 4372 background: #ededed; 4373} 4374/* Imagify is set to "Use <picture> tags", which rewraps images and moves the class and style 4375 onto the <picture>, leaving the <img> bare. Size the container and force both. CLAUDE.md 5.5. */ 4376.tws-toast__thumb picture, 4377.tws-toast__thumb img { 4378 display: block !important; 4379 width: 100% !important; 4380 height: 100% !important; 4381 object-fit: cover; 4382 margin: 0 !important; 4383 max-width: none !important; 4384} 4385.tws-toast__body { display: block; flex: 1 1 auto; min-width: 0; } 4386.tws-toast__eyebrow { 4387 display: inline-block; 4388 margin: 0 0 5px; 4389 font-family: var(--tws-toast-body); 4390 font-size: 10px; 4391 font-weight: 700; 4392 line-height: 1; 4393 letter-spacing: .09em; 4394 text-transform: uppercase; 4395 color: var(--tws-toast-accent); 4396} 4397.tws-toast__title { 4398 display: -webkit-box; 4399 -webkit-line-clamp: 3; 4400 -webkit-box-orient: vertical; 4401 overflow: hidden; 4402 margin: 0 0 6px; 4403 font-family: var(--tws-toast-heading); 4404 font-size: 15px; 4405 font-weight: 700; 4406 line-height: 1.34; 4407 color: #231F20; 4408} 4409.tws-toast__meta { 4410 display: block; 4411 margin: 0; 4412 font-family: var(--tws-toast-body); 4413 font-size: 11px; 4414 line-height: 1.2; 4415 color: #6b6b6b; 4416} 4417.tws-toast__meta b { color: #231F20; font-weight: 600; } 4418.tws-toast__close { 4419 position: absolute; 4420 top: 6px; 4421 right: 6px; 4422 width: 26px;
4423 height: 26px; 4424 padding: 0; 4425 border: 0; 4426 border-radius: 50%; 4427 background: rgba(255,255,255,.88); 4428 color: #6b6b6b; 4429 font: 700 17px/24px var(--tws-toast-body); 4430 cursor: pointer; 4431} 4432.tws-toast__close:hover, .tws-toast__close:focus { background: #f0f0f0; color: #231F20; } 4433@keyframes tws-toast-in { 4434 from { opacity: 0; transform: translateX(24px); } 4435 to { opacity: 1; transform: none; } 4436} 4437@keyframes tws-toast-out { 4438 from { opacity: 1; transform: none; } 4439 to { opacity: 0; transform: translateX(24px); } 4440} 4441/* Slides back out the way it came in, whether that was the timer, the close button or Escape. */ 4442.tws-toast.tws-toast--leaving { 4443 animation: tws-toast-out .32s cubic-bezier(.4,0,.7,.2) both; 4444 pointer-events: none; 4445} 4446@media (prefers-reduced-motion: reduce) { 4447 .tws-toast, .tws-toast.tws-toast--leaving { animation: none; } 4448} 4449@media (max-width: 1023px) { 4450 .tws-toast { 4451 top: calc(var(--tws-header-h, 152px) + 10px); 4452 right: 10px; 4453 left: 10px; 4454 width: auto; 4455 max-width: none; 4456 } 4457} 4458@media print { .tws-toast { display: none !important; } } 4459</style>
4460<script id="tws-new-article-toast-js"> 4461(function () { 4462 'use strict'; 4463 4464 var CONFIG = {"endpoint":"https:\/\/gundog-journal.com\/wp-json\/tws\/v1\/latest","interval":180000,"max":3,"minGap":60000,"autoHide":5000,"eyebrow":"Just published","matchFonts":1,"test":0}; 4465 4466 if (!window.fetch || !window.sessionStorage) { return; } 4467 4468 var KEY_SINCE = 'twsToastSince'; 4469 var KEY_SHOWN = 'twsToastShown'; 4470 var KEY_SEEN = 'twsToastSeen'; 4471 4472 function store(key, value) { 4473 try { sessionStorage.setItem(key, value); } catch (e) {} 4474 } 4475 4476 function read(key, fallback) { 4477 try { 4478 var v = sessionStorage.getItem(key); 4479 return (v === null) ? fallback : v; 4480 } catch (e) { return fallback; } 4481 } 4482 4483 // The baseline is the moment the reader arrived, held for the whole session, so an 4484 // article published while they were on an earlier page still counts as new. 4485 var KEY_LAST = 'twsToastLast'; 4486 4487 var since = read(KEY_SINCE, ''); 4488 if (!since) { 4489 since = new Date().toISOString(); 4490 store(KEY_SINCE, since); 4491 } 4492 4493 var shown = parseInt(read(KEY_SHOWN, '0'), 10) || 0; 4494 var seen = []; 4495 try { seen = JSON.parse(read(KEY_SEEN, '[]')) || []; } catch (e) { seen = []; } 4496 4497 // Test mode is a "show me now" button, so make it behave like one. Everything below 4498 // that suppresses a repeat - the per-visit cap, the seen list and the minimum gap - is 4499 // correct in normal use and was quietly making the test button do nothing at all once 4500 // the newest article had been shown once in that browser session. Clearing the visit 4501 // state here means ?tws_toast_test=1 is also the reliable way to reset a session. 4502 if (CONFIG.test) { 4503 try { 4504 sessionStorage.removeItem(KEY_SHOWN); 4505 sessionStorage.removeItem(KEY_SEEN); 4506 sessionStorage.removeItem(KEY_LAST); 4507 } catch (e) {} 4508 shown = 0; 4509 seen = []; 4510 } 4511 4512 var timer = null; 4513 var current = null; 4514 var fonts = null; 4515 var hideTimer = null; 4516 var leaving = false; 4517 4518 /** 4519 * Read the site's own fonts rather than hard-coding them. 4520 * 4521 * The per-site stylesheets (shooting-times-fonts.css and the rest) target `#app h2`, 4522 * `#app p` and so on with !important, so a throwaway element placed inside #app resolves 4523 * to exactly what that site uses: Merriweather and Open Sans on ShootingUK, Oswald and 4524 * Jost on Sporting Gun, and so on. Measured once, then thrown away. Body copy is read 4525 * from a <p> rather than from <body>, because the global rule on body is Proxima Nova, 4526 * which is not what the sites actually render. 4527 */ 4528 function detectFonts() { 4529 if (fonts) { return fonts; } 4530 4531 var host = document.getElementById('app') || document.body; 4532 var probe = document.createElement('div'); 4533 4534 probe.setAttribute('aria-hidden', 'true'); 4535 probe.style.cssText = 'position:absolute!important;left:-9999px!important;top:0!important;' + 4536 'width:0!important;height:0!important;overflow:hidden!important;visibility:hidden!important;'; 4537 probe.innerHTML = '<h2 class="h2"></h2><p></p>'; 4538 4539 host.appendChild(probe); 4540 4541 var heading = ''; 4542 var body = ''; 4543 4544 try { 4545 heading = getComputedStyle(probe.children[0]).fontFamily || ''; 4546 body = getComputedStyle(probe.children[1]).fontFamily || ''; 4547 } catch (e) {} 4548 4549 probe.parentNode.removeChild(probe); 4550 4551 fonts = { 4552 heading: withFallback(heading, "Georgia, 'Times New Roman', serif"), 4553 body: withFallback(body, 'Helvetica, Arial, sans-serif') 4554 }; 4555 4556 return fonts; 4557 } 4558 4559 // Append a generic family so the card still reads properly if the site's face fails to 4560 // load, which it does on the six domains with the outstanding cross-origin font problem. 4561 function withFallback(stack, fallback) { 4562 if (!stack) { return fallback; } 4563 return /(serif|sans-serif|monospace|cursive|fantasy|system-ui|ui-\w+)\s*$/i.test(stack) 4564 ? stack 4565 : stack + ', ' + fallback; 4566 } 4567 4568 function stop() { 4569 if (timer) { clearTimeout(timer); timer = null; } 4570 } 4571 4572 function ago(iso) { 4573 var mins = Math.round((Date.now() - new Date(iso).getTime()) / 60000); 4574 if (!isFinite(mins) || mins < 1) { return 'just now'; } 4575 if (mins === 1) { return '1 minute ago'; } 4576 if (mins < 60) { return mins + ' minutes ago'; } 4577 var hrs = Math.round(mins / 60); 4578 return hrs === 1 ? '1 hour ago' : hrs + ' hours ago'; 4579 } 4580 4581 function clearHideTimer() { 4582 if (hideTimer) { clearTimeout(hideTimer); hideTimer = null; } 4583 } 4584 4585 // Restarted whenever the pointer leaves the card, so it never disappears out from 4586 // under someone who is reading it or moving the mouse towards it. 4587 function startHideTimer() { 4588 clearHideTimer(); 4589 if (CONFIG.autoHide > 0 && current && !leaving) { 4590 hideTimer = setTimeout(dismiss, CONFIG.autoHide); 4591 } 4592 } 4593 4594 function reducedMotion() { 4595 return !!(window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches); 4596 } 4597 4598 // Immediate, no animation. Used when replacing one card with another. 4599 function remove() { 4600 clearHideTimer();
4601 leaving = false; 4602 if (!current) { return; } 4603 if (current.parentNode) { current.parentNode.removeChild(current); } 4604 current = null; 4605 document.removeEventListener('keydown', onKey); 4606 } 4607 4608 function dismiss() { 4609 if (!current || leaving) { return; } 4610 4611 clearHideTimer(); 4612 4613 // Someone who has asked for less motion gets no slide, so there is no animationend 4614 // to wait for either. 4615 if (reducedMotion()) { remove(); return; } 4616 4617 leaving = true; 4618 4619 var box = current; 4620 var done = false; 4621 4622 function finish() { 4623 if (done) { return; } 4624 done = true; 4625 box.removeEventListener('animationend', finish); 4626 remove(); 4627 } 4628 4629 box.addEventListener('animationend', finish); 4630 box.classList.add('tws-toast--leaving'); 4631 4632 // Belt and braces: animationend does not fire if the tab is backgrounded mid-slide, 4633 // or if the animation is suppressed after the class is added. 4634 setTimeout(finish, 700); 4635 } 4636 4637 function onKey(e) { 4638 if (e.key === 'Escape' || e.key === 'Esc') { dismiss(); } 4639 } 4640 4641 function show(data) { 4642 remove(); 4643 4644 var box = document.createElement('div'); 4645 box.className = 'tws-toast'; 4646 box.setAttribute('role', 'status'); 4647 box.setAttribute('aria-live', 'polite'); 4648 4649 if (CONFIG.matchFonts) { 4650 var f = detectFonts(); 4651 box.style.setProperty('--tws-toast-heading', f.heading); 4652 box.style.setProperty('--tws-toast-body', f.body); 4653 } 4654 4655 var close = document.createElement('button'); 4656 close.type = 'button'; 4657 close.className = 'tws-toast__close'; 4658 close.setAttribute('aria-label', 'Dismiss this notification'); 4659 close.innerHTML = '×'; 4660 close.addEventListener('click', dismiss); 4661 4662 var link = document.createElement('a'); 4663 link.className = 'tws-toast__inner'; 4664 link.href = data.url; 4665 4666 if (data.thumb) { 4667 var thumb = document.createElement('span'); 4668 thumb.className = 'tws-toast__thumb'; 4669 var img = document.createElement('img'); 4670 img.src = data.thumb; 4671 img.alt = ''; 4672 img.loading = 'lazy'; 4673 thumb.appendChild(img); 4674 link.appendChild(thumb); 4675 } 4676 4677 var body = document.createElement('span'); 4678 body.className = 'tws-toast__body'; 4679 4680 var eyebrow = document.createElement('span'); 4681 eyebrow.className = 'tws-toast__eyebrow'; 4682 eyebrow.textContent = CONFIG.eyebrow; 4683 4684 var title = document.createElement('span'); 4685 title.className = 'tws-toast__title'; 4686 // textContent, not innerHTML: the title arrives decoded and is never treated as markup. 4687 title.textContent = data.title; 4688 4689 var meta = document.createElement('span'); 4690 meta.className = 'tws-toast__meta'; 4691 if (data.category) { 4692 var cat = document.createElement('b'); 4693 cat.textContent = data.category; 4694 meta.appendChild(cat); 4695 meta.appendChild(document.createTextNode(' ·  ')); 4696 } 4697 meta.appendChild(document.createTextNode(ago(data.date_gmt))); 4698 4699 body.appendChild(eyebrow); 4700 body.appendChild(title); 4701 body.appendChild(meta); 4702 link.appendChild(body); 4703 4704 box.appendChild(close); 4705 box.appendChild(link); 4706 document.body.appendChild(box); 4707 4708 current = box; 4709 document.addEventListener('keydown', onKey); 4710 4711 box.addEventListener('mouseenter', clearHideTimer); 4712 box.addEventListener('mouseleave', startHideTimer); 4713 box.addEventListener('focusin', clearHideTimer); 4714 box.addEventListener('focusout', startHideTimer); 4715 4716 startHideTimer(); 4717 } 4718 4719 function check() { 4720 if (!CONFIG.test && shown >= CONFIG.max) { stop(); return; } 4721 4722 // Query string is deliberately unique per request: WP Rocket and LiteSpeed both sit in 4723 // front of PHP, and a cached "latest" would be wrong for as long as it lived. 4724 var url = CONFIG.endpoint 4725 + (CONFIG.endpoint.indexOf('?') === -1 ? '?' : '&') 4726 + 'since=' + encodeURIComponent(since) 4727 + '&_=' + Date.now() 4728 + (CONFIG.test ? '&test=1' : ''); 4729 4730 fetch(url, { credentials: 'same-origin', cache: 'no-store' }) 4731 .then(function (r) { return r.ok ? r.json() : null; }) 4732 .then(function (data) { 4733 if (!data || !data['new'] || !data.url) { return; } 4734 if (!CONFIG.test && seen.indexOf(data.id) !== -1) { return; } 4735 4736 // Now that more than one card can appear in a visit, keep them apart. Without 4737 // this, a card shown just before the reader clicked to another page would be 4738 // followed by a second one seconds later on the next page's load check, which 4739 // reads as rapid-fire rather than as a useful alert. Nothing is marked seen and 4740 // the baseline is not moved, so this article is still eligible on a later poll. 4741 if (!CONFIG.test && CONFIG.minGap > 0) { 4742 var last = parseInt(read(KEY_LAST, '0'), 10) || 0; 4743 if (last && (Date.now() - last) < CONFIG.minGap) { return; } 4744 } 4745 4746 // Nothing is recorded during a test, so testing never leaves the visit in a 4747 // state where the real thing is then suppressed. 4748 if (!CONFIG.test) { 4749 seen.push(data.id); 4750 store(KEY_SEEN, JSON.stringify(seen.slice(-30))); 4751 4752 shown += 1; 4753 store(KEY_SHOWN, String(shown));
4754 store(KEY_LAST, String(Date.now())); 4755 4756 // Move the baseline on so the next poll only looks for something newer still. 4757 if (data.date_gmt) { 4758 since = data.date_gmt; 4759 store(KEY_SINCE, since); 4760 } 4761 } 4762 4763 show(data); 4764 4765 if (!CONFIG.test && shown >= CONFIG.max) { stop(); } 4766 }) 4767 .catch(function () { /* a failed poll is not worth telling the reader about */ }); 4768 } 4769 4770 function schedule() { 4771 stop(); 4772 if (shown >= CONFIG.max) { return; } 4773 timer = setTimeout(function () { 4774 schedule(); 4775 if (!document.hidden) { check(); } 4776 }, CONFIG.interval); 4777 } 4778 4779 function start() { 4780 if (CONFIG.test) { check(); } 4781 4782 // Check shortly after load as well as on the interval. The baseline lives in 4783 // sessionStorage and spans the whole visit, so this is the moment that actually 4784 // catches "published since you arrived". Without it a reader who moves to a new 4785 // page every minute resets the timer before it ever reaches the interval, and on a 4786 // news site that means the card may never appear at all. Two seconds keeps it off 4787 // the critical render path. 4788 setTimeout(function () { 4789 if (!document.hidden && shown < CONFIG.max) { check(); } 4790 }, 2000); 4791 4792 schedule(); 4793 4794 // Nothing is polled while the tab is in the background; check once on return instead. 4795 document.addEventListener('visibilitychange', function () { 4796 if (!document.hidden && shown < CONFIG.max) { check(); } 4797 }); 4798 } 4799 4800 if (document.readyState === 'loading') { 4801 document.addEventListener('DOMContentLoaded', start); 4802 } else { 4803 start(); 4804 } 4805}()); 4806</script>
4806 4807
4807<script id="twsnl-sub-js"> 4808(function () { 4809 'use strict'; 4810 4811 var COMPACT = true; 4812 4813 function ready(fn) { 4814 if (document.readyState !== 'loading') { fn(); } 4815 else { document.addEventListener('DOMContentLoaded', fn); } 4816 } 4817 4818 ready(function () { 4819 var groups = [].slice.call(document.querySelectorAll('[data-twsnl-sub]')); 4820 if (!groups.length) { return; } 4821 4822 var header = document.getElementById('header'); 4823 4824 function flagOpen() { 4825 if (!header) { return; } 4826 header.classList.toggle('twsnl-sub-open', groups.some(function (g) { 4827 var dd = g.querySelector('[data-twsnl-sub-dd]'); 4828 return dd && !dd.hidden; 4829 })); 4830 } 4831 4832 function close(group) { 4833 var btn = group.querySelector('[data-twsnl-sub-btn]'); 4834 var dd = group.querySelector('[data-twsnl-sub-dd]'); 4835 if (!btn || !dd || dd.hidden) { return; } 4836 dd.hidden = true; 4837 btn.setAttribute('aria-expanded', 'false'); 4838 flagOpen(); 4839 } 4840 4841 function open(group) { 4842 var btn = group.querySelector('[data-twsnl-sub-btn]'); 4843 var dd = group.querySelector('[data-twsnl-sub-dd]'); 4844 if (!btn || !dd) { return; } 4845 dd.hidden = false; 4846 btn.setAttribute('aria-expanded', 'true'); 4847 flagOpen(); 4848 } 4849 4850 function closeAll(except) { 4851 groups.forEach(function (g) { if (g !== except) { close(g); } }); 4852 } 4853 4854 function rows(dd) { 4855 return [].slice.call(dd.querySelectorAll('.twsnl-sub-row')).filter(function (a) { 4856 return a.offsetParent !== null; 4857 }); 4858 } 4859 4860 groups.forEach(function (group) { 4861 var btn = group.querySelector('[data-twsnl-sub-btn]'); 4862 var dd = group.querySelector('[data-twsnl-sub-dd]'); 4863 if (!btn || !dd) { return; } 4864 4865 btn.addEventListener('click', function (e) { 4866 e.preventDefault(); 4867 e.stopPropagation(); 4868 var wasOpen = dd.hidden === false; 4869 closeAll(group); 4870 if (wasOpen) { close(group); } else { open(group); } 4871 }); 4872 4873 btn.addEventListener('keydown', function (e) { 4874 if (e.key !== 'ArrowDown') { return; } 4875 e.preventDefault(); 4876 if (dd.hidden) { open(group); } 4877 (rows(dd)[0] || btn).focus(); 4878 }); 4879 4880 dd.addEventListener('keydown', function (e) { 4881 if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp') { return; } 4882 var items = rows(dd); 4883 var i = items.indexOf(document.activeElement); 4884 if (i === -1) { return; } 4885 e.preventDefault(); 4886 var next = e.key === 'ArrowDown' ? i + 1 : i - 1; 4887 if (next < 0) { btn.focus(); return; } 4888 if (next >= items.length) { next = items.length - 1; } 4889 items[next].focus(); 4890 }); 4891 4892 dd.addEventListener('click', function (e) { e.stopPropagation(); }); 4893 }); 4894 4895 document.addEventListener('click', function () { closeAll(null); }); 4896 4897 document.addEventListener('keydown', function (e) { 4898 if (e.key !== 'Escape' && e.key !== 'Esc') { return; } 4899 groups.forEach(function (g) { 4900 var dd = g.querySelector('[data-twsnl-sub-dd]'); 4901 if (dd && !dd.hidden) { 4902 close(g); 4903 var btn = g.querySelector('[data-twsnl-sub-btn]'); 4904 if (btn) { btn.focus(); } 4905 } 4906 }); 4907 }); 4908 4909 if (!COMPACT || !header) { return; } 4910 4911 var compact = false; 4912 var ticking = false; 4913 4914 function measure() { 4915 var y = window.pageYOffset || document.documentElement.scrollTop || 0; 4916 var want = y > 60; 4917 if (want !== compact) { 4918 compact = want; 4919 header.classList.toggle('twsnl-hdr-compact', compact); 4920 // never leave a panel hanging off a row that is rolling away 4921 if (compact) { closeAll(null); } 4922 } 4923 ticking = false; 4924 } 4925 4926 window.addEventListener('scroll', function () { 4927 if (ticking) { return; } 4928 ticking = true; 4929 window.requestAnimationFrame(measure); 4930 }, { passive: true }); 4931 4932 measure(); 4933 }); 4934})(); 4935</script>
4935 4936 <div class="tws-is-dim" aria-hidden="true"></div>
4937<script id="tws-search-and-display-js"> 4938(function () { 4939 'use strict'; 4940 4941 var CFG = {"index":"https://gundog-journal.com/app/uploads/sites/2/tws-search-and-display/index.json","indexV":"1790873162","results":5,"resultsM":4,"trending":[],"brand":"Gundog Journal","search":"https://gundog-journal.com/search/","logUrl":"/wp-admin/admin-ajax.php?action=tws_log_search","param":"_sf_s","uploads":"https://gundog-journal.com/app/uploads/sites/2/","home":"https://gundog-journal.com/","prefetch":1,"hint":1}; 4942 var panels = [].slice.call(document.querySelectorAll('[data-tws-is]')); 4943 4944 if (!panels.length) { return; } 4945 4946 var MONTHS = ['January','February','March','April','May','June','July','August','September','October','November','December']; 4947 var DATA = null; // { c: categories, a: authors, r: rows } 4948 var HAY = null; // lowercased "title category author" per row, built once 4949 var loading = null; // the in-flight fetch, so two panels share one request 4950 4951 // idle | loading | ready | failed. This exists to make failure TERMINAL. 4952 // 4953 // v1.0.0 had no such flag: render() saw a null DATA, called load(), and re-rendered in 4954 // the .then(). When the fetch failed DATA stayed null, so that re-render took the same 4955 // branch and scheduled another one. Promise callbacks are microtasks, and a microtask 4956 // that queues a microtask never yields to the event loop - the tab wedges completely, 4957 // with no chance even to paint. That is the "Page Unresponsive" dialogue, and it fired 4958 // at exactly two characters because that is the first keystroke that looks at the index. 4959 // Once the state is 'failed' nothing calls load() again. 4960 var state = 'idle'; 4961 4962 // The index URL is assembled here rather than printed whole into the page, so no complete 4963 // URL for the JSON ever appears in the HTML for a crawler to find. See index_base_url(). 4964 var INDEX_URL = CFG.index + (CFG.indexV ? '?v=' + encodeURIComponent(CFG.indexV) : ''); 4965 4966 /* ---------- data ---------- */ 4967 4968 function fail(why) { 4969 state = 'failed'; 4970 4971 if (window.console && console.warn) { 4972 console.warn('[TWS Search & Display] index unavailable (' + why + '): ' + INDEX_URL 4973 + ' â the panel has fallen back to the full search page. Open that URL directly to see what the server returns.'); 4974 } 4975 4976 return null; 4977 } 4978 4979 function load() { 4980 // Terminal states answer immediately and never re-enter the fetch. 4981 if (state === 'ready' || state === 'failed') { return Promise.resolve(DATA); } 4982 if (loading) { return loading; } 4983 4984 state = 'loading'; 4985 4986 loading = fetch(INDEX_URL, { credentials: 'same-origin' }) 4987 .then(function (r) { return r.ok ? r.json() : fail('HTTP ' + r.status); }) 4988 .then(function (json) { 4989 if (!json) { return null; } 4990 if (!json.r || !json.r.length) { return fail('empty index'); } 4991 4992 DATA = json; 4993 HAY = json.r.map(function (row) { 4994 return (row[0] + ' ' + (json.c[row[3]] || '') + ' ' + (json.a[row[4]] || '')).toLowerCase(); 4995 }); 4996 4997 state = 'ready'; 4998 4999 return DATA; 5000 }) 5001 .catch(function (e) { return fail(e && e.message ? e.message : 'network or parse error'); }); 5002 5003 return loading; 5004 } 5005 5006 /* ---------- searching ---------- */ 5007 5008 function search(q, limit) { 5009 if (!DATA || !HAY) { return { total: 0, rows: [] }; } 5010 5011 var words = q.toLowerCase().split(/\s+/).filter(Boolean); 5012 if (!words.length) { return { total: 0, rows: [] }; } 5013 5014 var out = []; 5015 var i, j, ok, hay; 5016 5017 // Rows are already newest first, so an ordinary scan is also a recency sort. 5018 // Scanning all 12,000 rows measures 1-6ms even on a throttled phone, so there is no 5019 // index structure to justify here. 5020 for (i = 0; i < HAY.length; i++) { 5021 hay = HAY[i]; 5022 ok = true; 5023 5024 for (j = 0; j < words.length; j++) { 5025 if (hay.indexOf(words[j]) === -1) { ok = false; break; } 5026 } 5027 5028 if (!ok) { continue; } 5029 5030 out.push(i); 5031 } 5032 5033 // NEWEST FIRST, always. This used to rank by where the word fell in the title, which 5034 // could put a three-year-old fly-tying guide above this morning's news for the same 5035 // search - not what a magazine's reader expects from a box that sits in the masthead. 5036 // Field 5 is the date as YYYY-MM-DD, so a plain string compare sorts it correctly, 5037 // and the index is written newest first (and patched back into date order), so this 5038 // is usually confirming an order the scan already produced. 5039 out.sort(function (a, b) { 5040 var da = DATA.r[a][5] || ''; 5041 var db = DATA.r[b][5] || ''; 5042 5043 if (da === db) { return a - b; } 5044 5045 return da < db ? 1 : -1; 5046 }); 5047 5048 // The total is what goes in the "11 matches" line, so it has to be counted before 5049 // the list is cut down to the handful actually shown. 5050 return { total: out.length, rows: out.slice(0, limit).map(function (i) { return row(i); }) }; 5051 } 5052 5053 // Three shapes have to work: an absolute URL, a root-relative path (which is what this 5054 // network's WordPress actually returns), and a path relative to the uploads folder. The 5055 // root-relative case is why thumbnails were broken - pasting the uploads base in front 5056 // of a path that already began with /app/uploads produced a doubled URL. Handling it 5057 // here means indexes built before the fix start working without a rebuild. 5058 function thumbUrl(v) { 5059 if (!v) { return ''; } 5060 if (/^https?:\/\//.test(v)) { return v; } 5061 if (v.charAt(0) === '/') { return location.origin + v; } 5062 5063 return CFG.uploads + v; 5064 } 5065 5066 function row(i) { 5067 var r = DATA.r[i]; 5068 5069 return { 5070 title: r[0], 5071 url: CFG.home + r[1], 5072 thumb: thumbUrl(r[2]), 5073 cat: DATA.c[r[3]] || '', 5074 author: DATA.a[r[4]] || '', 5075 date: r[5] 5076 }; 5077 } 5078 5079 /* ---------- rendering ---------- */ 5080 5081 function esc(s) { 5082 return String(s).replace(/[&<>"']/g, function (c) { 5083 return { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[c]; 5084 }); 5085 } 5086 5087 // Highlight after escaping, never before, so a title can never inject markup. 5088 function mark(text, q) { 5089 var safe = esc(text);
5090 var words = q.trim().split(/\s+/).filter(Boolean).map(function (w) { 5091 return esc(w).replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); 5092 }); 5093 5094 if (!words.length) { return safe; } 5095 5096 try { 5097 return safe.replace(new RegExp('(' + words.join('|') + ')', 'gi'), '<mark>$1</mark>'); 5098 } catch (e) { 5099 return safe; 5100 } 5101 } 5102 5103 function pretty(iso) { 5104 var p = /^(\d{4})-(\d{2})-(\d{2})/.exec(iso || ''); 5105 if (!p) { return ''; } 5106 5107 return parseInt(p[3], 10) + ' ' + MONTHS[parseInt(p[2], 10) - 1] + ' ' + p[1]; 5108 } 5109 5110 function resultsWanted() { 5111 return window.matchMedia('(max-width: 1023px)').matches ? CFG.resultsM : CFG.results; 5112 } 5113 5114 function searchUrl(q) { 5115 return CFG.search + '?' + CFG.param + '=' + encodeURIComponent(q); 5116 } 5117 5118 // Tell the search log what was typed when a quick match is opened. That search never 5119 // reaches the results page, so nothing else would count it. sendBeacon survives the 5120 // page unloading and the reader waits for nothing; if it is missing, nothing is sent. 5121 function logPick(q) { 5122 q = String(q || '').trim(); 5123 if (!CFG.logUrl || q.length < 3 || !navigator.sendBeacon) { return; } 5124 try { 5125 var fd = new FormData(); 5126 fd.append('term', q); 5127 navigator.sendBeacon(CFG.logUrl, fd); 5128 } catch (err) { /* never block the click */ } 5129 } 5130 5131 function renderTrending(panel) { 5132 if (!CFG.trending.length) { panel.body.innerHTML = ''; return; } 5133 5134 panel.body.innerHTML = '<div class="tws-is-empty"><h4>Trending on ' + esc(CFG.brand) + '</h4>' 5135 + '<div class="tws-is-chips">' 5136 + CFG.trending.map(function (t) { return '<button type="button" class="tws-is-chip">' + esc(t) + '</button>'; }).join('') 5137 + '</div></div>'; 5138 5139 [].slice.call(panel.body.querySelectorAll('.tws-is-chip')).forEach(function (chip) { 5140 chip.addEventListener('click', function (e) { 5141 // This handler is about to delete the element the event came from, so stop 5142 // it here rather than letting a detached target travel up the tree. 5143 e.preventDefault(); 5144 e.stopPropagation(); 5145 5146 panel.input.value = chip.textContent; 5147 panel.input.focus(); 5148 render(panel); 5149 }); 5150 }); 5151 } 5152 5153 function render(panel) { 5154 var q = panel.input.value.trim(); 5155 5156 panel.clear.hidden = !q; 5157 panel.active = -1; 5158 5159 if (q.length < 2) { renderTrending(panel); return; } 5160 5161 // Terminal: the index could not be loaded, so offer the full search and stop. No 5162 // load(), no re-render, therefore no way back into the loop described above. 5163 if (state === 'failed') { 5164 panel.body.innerHTML = '<div class="tws-is-note">Press Enter to search for â<b>' + esc(q) + '</b>â.</div>' 5165 + '<a class="tws-is-viewall" href="' + esc(searchUrl(q)) + '">Search ' + esc(CFG.brand) + ' for â' + esc(q) + 'â</a>'; 5166 return; 5167 } 5168 5169 if (!DATA) { 5170 panel.body.innerHTML = '<div class="tws-is-note">Searchingâ¦</div>'; 5171 5172 load().then(function () { 5173 // Only re-render once the state is settled, and only if the reader has not 5174 // typed on. Either branch below is terminal, so this cannot recurse. 5175 if (state !== 'ready' && state !== 'failed') { return; } 5176 if (panel.input.value.trim() !== q) { return; } 5177 5178 render(panel); 5179 }); 5180 5181 return; 5182 } 5183 5184 var found = search(q, resultsWanted()); 5185 var hits = found.rows; 5186 5187 if (!hits.length) { 5188 panel.body.innerHTML = '<div class="tws-is-note">No quick matches for â<b>' + esc(q) + '</b>â â press Enter to search everything.</div>' 5189 + '<a class="tws-is-viewall" href="' + esc(searchUrl(q)) + '">Search all of ' + esc(CFG.brand) + ' for â' + esc(q) + 'â</a>'; 5190 return; 5191 } 5192 5193 var hint = CFG.hint 5194 ? '<span class="tws-is-kbd"><kbd>â</kbd> <kbd>â</kbd> to move <kbd>Enter</kbd> to open</span>' 5195 : '<span></span>'; 5196 5197 // "quick matches", not "matches". This panel searches titles, categories and authors 5198 // in the index; the results page runs Relevanssi over the whole article text and will 5199 // usually find more, so the wording must not promise a number the next page contradicts. 5200 // No number. The panel shows five rows, so "152 quick matches" above five results 5201 // reads as a miscount even though it is the honest size of the filtered set. The 5202 // button underneath is what offers the rest. 5203 panel.body.innerHTML = '<div class="tws-is-meta"><span>Quick matches</span>' + hint + '</div>' 5204 + '<ul class="tws-is-results">' 5205 + hits.map(function (r) { 5206 return '<li class="tws-is-item"><a href="' + esc(r.url) + '">' 5207 + '<span class="tws-is-thumb">' + (r.thumb ? '<img src="' + esc(r.thumb) + '" alt="" loading="lazy" decoding="async">' : '') + '</span>' 5208 + '<span class="tws-is-text">' 5209 + (r.cat ? '<span class="tws-is-cat">' + esc(r.cat) + '</span>' : '') 5210 + '<span class="tws-is-title">' + mark(r.title, q) + '</span>' 5211 + '<span class="tws-is-byline">' + (r.author ? 'By <b>' + mark(r.author, q) + '</b> · ' : '') + esc(pretty(r.date)) + '</span>' 5212 + '</span></a></li>'; 5213 }).join('') 5214 + '</ul>' 5215 + '<a class="tws-is-viewall" href="' + esc(searchUrl(q)) + '">' 5216 + 'Search everything for â' + esc(q) + 'â' 5217 + '</a>'; 5218 } 5219 5220 /* ---------- keyboard ---------- */ 5221 5222 function setActive(panel, i) { 5223 var items = [].slice.call(panel.body.querySelectorAll('.tws-is-item')); 5224 if (!items.length) { return; } 5225 5226 panel.active = (i + items.length) % items.length; 5227
5228 items.forEach(function (el, j) { el.classList.toggle('is-active', j === panel.active); }); 5229 items[panel.active].scrollIntoView({ block: 'nearest' }); 5230 } 5231 5232 function onKey(panel, e) { 5233 var items = panel.body.querySelectorAll('.tws-is-item a'); 5234 5235 if (e.key === 'ArrowDown') { e.preventDefault(); setActive(panel, panel.active + 1); } 5236 else if (e.key === 'ArrowUp') { e.preventDefault(); setActive(panel, panel.active - 1); } 5237 else if (e.key === 'Enter') { 5238 e.preventDefault(); 5239 5240 if (panel.active > -1 && items[panel.active]) { logPick(panel.input.value); window.location.href = items[panel.active].href; } 5241 else if (panel.input.value.trim()) { window.location.href = searchUrl(panel.input.value.trim()); } 5242 } 5243 } 5244 5245 /* ---------- open and close ---------- */ 5246 5247 // Alpine owns the dropdowns; this only mirrors their state onto <body> so the dim can 5248 // show, and offers Escape and click-outside by clicking the theme's own toggle button. 5249 var dropdowns = [].slice.call(document.querySelectorAll('.desktop-search-dropdown, .mobile-search-dropdown')); 5250 var toggles = [].slice.call(document.querySelectorAll('.header-search-wrapper button, button.lg\\:hidden')) 5251 .filter(function (b) { return b.querySelector('svg circle'); }); 5252 5253 function anyOpen() { 5254 return dropdowns.some(function (d) { 5255 return d.offsetParent !== null && d.getBoundingClientRect().height > 4; 5256 }); 5257 } 5258 5259 var lastOpen = null; 5260 var syncQueued = false; 5261 5262 // Alpine's x-collapse writes an inline height on the dropdown on every animation frame, 5263 // so the observer below can fire dozens of times per open. Coalescing to one frame and 5264 // bailing when nothing actually changed keeps that from turning into a layout storm. 5265 function syncState() { 5266 if (syncQueued) { return; } 5267 5268 syncQueued = true; 5269 5270 (window.requestAnimationFrame || function (f) { setTimeout(f, 16); })(function () { 5271 syncQueued = false; 5272 applyState(); 5273 }); 5274 } 5275 5276 function applyState() { 5277 var open = anyOpen(); 5278 5279 if (open === lastOpen) { return; } 5280 5281 lastOpen = open; 5282 5283 document.body.classList.toggle('tws-is-open', open); 5284 5285 if (open) { 5286 var visible = panels.filter(function (p) { return p.el && p.input && p.el.offsetParent !== null; })[0]; 5287 5288 if (visible && document.activeElement !== visible.input) { 5289 setTimeout(function () { try { visible.input.focus(); } catch (e) {} }, 60); 5290 } 5291 } 5292 } 5293 5294 function closeAll() { 5295 if (!anyOpen()) { return; } 5296 5297 // Clicking the theme's own button keeps Alpine's `expanded` in step. Setting the 5298 // style directly would leave Alpine thinking the panel was still open. 5299 toggles.forEach(function (b) { if (b.offsetParent !== null) { b.click(); } }); 5300 5301 setTimeout(applyState, 60); 5302 } 5303 5304 if (window.MutationObserver && dropdowns.length) { 5305 var mo = new MutationObserver(function () { syncState(); }); 5306 5307 dropdowns.forEach(function (d) { 5308 mo.observe(d, { attributes: true, attributeFilter: ['style', 'class', 'hidden'] }); 5309 }); 5310 } 5311 5312 toggles.forEach(function (b) { 5313 b.addEventListener('click', function () { 5314 setTimeout(applyState, 30); 5315 load(); 5316 }); 5317 }); 5318 5319 document.addEventListener('keydown', function (e) { 5320 if (e.key === 'Escape') { closeAll(); } 5321 }); 5322 5323 // CAPTURE phase, deliberately. 5324 // 5325 // Clicking a trending chip replaces the panel's innerHTML, which destroys the chip. By 5326 // the time a bubbling listener on document ran, e.target was an element detached from 5327 // the DOM, so closest('[data-tws-is]') returned null, the "was the click inside the 5328 // panel?" guard failed, and the panel closed itself the instant a chip was clicked. 5329 // Running in the capture phase means this decision is made on the way DOWN, before any 5330 // handler has had the chance to re-render. The isConnected check is the second belt: a 5331 // target that is no longer in the document cannot meaningfully be outside the panel. 5332 document.addEventListener('click', function (e) { 5333 if (!document.body.classList.contains('tws-is-open')) { return; } 5334 if (!e.target || !e.target.isConnected) { return; } 5335 if (e.target.closest('[data-tws-is]') || e.target.closest('.header-search-wrapper')) { return; } 5336 if (toggles.some(function (b) { return b.contains(e.target); })) { return; } 5337 5338 closeAll(); 5339 }, true); 5340 5341 /* ---------- wire up ---------- */ 5342 5343 panels = panels.map(function (el) { 5344 var panel = { 5345 el: el,
5346 input: el.querySelector('.tws-is-input'), 5347 clear: el.querySelector('.tws-is-clear'), 5348 body: el.querySelector('.tws-is-body'), 5349 active: -1, 5350 timer: null 5351 }; 5352 5353 if (!panel.input || !panel.body) { return panel; } 5354 5355 panel.input.addEventListener('input', function () { 5356 clearTimeout(panel.timer); 5357 panel.timer = setTimeout(function () { render(panel); }, 120); 5358 }); 5359 5360 panel.input.addEventListener('focus', load); 5361 panel.input.addEventListener('keydown', function (e) { onKey(panel, e); }); 5362 5363 // A quick match opened with the mouse or a tap (Enter is handled in onKey). 5364 panel.body.addEventListener('click', function (e) { 5365 var a = e.target && e.target.closest ? e.target.closest('.tws-is-item a') : null; 5366 if (a) { logPick(panel.input.value); } 5367 }); 5368 5369 panel.clear.addEventListener('click', function () { 5370 panel.input.value = ''; 5371 panel.input.focus(); 5372 render(panel); 5373 }); 5374 5375 renderTrending(panel); 5376 5377 return panel; 5378 }); 5379 5380 // A one-line diagnostic, so "is the index actually loading?" can be answered from the 5381 // browser console on any site without adding a debug mode: window.TWS_IS.state() 5382 window.TWS_IS = { 5383 state: function () { return state; }, 5384 url: INDEX_URL, 5385 count: function () { return DATA && DATA.r ? DATA.r.length : 0; }, 5386 reload: function () { state = 'idle'; loading = null; DATA = null; HAY = null; return load(); } 5387 }; 5388 5389 // Fetching on idle rather than on click is what makes the first search feel instant: 5390 // the file is already in memory before anyone reaches for the magnifier. 5391 if (CFG.prefetch) { 5392 if (window.requestIdleCallback) { requestIdleCallback(load, { timeout: 4000 }); } 5393 else { setTimeout(load, 2500); } 5394 } 5395 5396 applyState(); 5397})(); 5398</script>
5398 5399
5399<script id="tws-nav-subcategories-helper"> 5400(function () { 5401 var SEL = '#mega-menu-primary_navigation > li.mega-menu-flyout.mega-menu-item-has-children,' 5402 + '#mega-menu-primary_navigation > li.mega-menu-flyout.menu-item-has-children'; 5403 5404 function items() { return document.querySelectorAll(SEL); } 5405 5406 function sync(li) { 5407 var panel = li.querySelector(':scope > ul'); 5408 var bar = li.closest('#header') || li.closest('.nav-header-main'); 5409 5410 if (bar) { 5411 var drop = Math.round(bar.getBoundingClientRect().bottom - li.getBoundingClientRect().top); 5412 if (drop > 0) { li.style.setProperty('--tws-subs-top', drop + 'px'); } 5413 } 5414 5415 if (!panel || window.innerWidth < 1024) { return; } 5416 5417 panel.classList.remove('tws-subs-flip'); 5418 5419 var width = panel.offsetWidth; 5420 var left = li.getBoundingClientRect().left; 5421 5422 // A zero reading means the panel has no layout yet. Leave it alone. 5423 if (!width) { return; } 5424 5425 if (left + width > window.innerWidth - 16) { 5426 panel.classList.add('tws-subs-flip'); 5427 } 5428 } 5429 5430 function syncAll() { 5431 Array.prototype.forEach.call(items(), sync); 5432 } 5433 5434 function bind() { 5435 Array.prototype.forEach.call(items(), function (li) { 5436 ['mouseenter', 'focusin', 'touchstart'].forEach(function (ev) { 5437 li.addEventListener(ev, function () { sync(li); }, { passive: true }); 5438 }); 5439 }); 5440 syncAll(); 5441 } 5442 5443 if (document.readyState !== 'loading') { bind(); } 5444 else { document.addEventListener('DOMContentLoaded', bind); } 5445 5446 var timer; 5447 window.addEventListener('resize', function () { 5448 clearTimeout(timer); 5449 timer = setTimeout(syncAll, 150); 5450 }); 5451})(); 5452</script>
5452 5453
5453<script id="tws-mobile-panel-script"> 5454(function () { 5455 var SRC = '.tws-mp-source[data-tws-mobile-panel]'; 5456 5457 function mobilePanel() { 5458 var wraps = document.querySelectorAll('[id^="mega-menu-wrap-"]'); 5459 5460 for (var i = 0; i < wraps.length; i++) { 5461 if (wraps[i].closest && wraps[i].closest('.mega-menu-mobile-toggle')) { 5462 return wraps[i].querySelector('ul.mega-menu'); 5463 } 5464 } 5465 5466 // No mobile toggle found. The last wrap on the page is the mobile one in 5467 // every template on this network, so fall back to it rather than giving up. 5468 return wraps.length ? wraps[wraps.length - 1].querySelector('ul.mega-menu') : null; 5469 } 5470 5471 function row(className, node) { 5472 var li = document.createElement('li'); 5473 li.className = 'tws-mp-item ' + className; 5474 li.appendChild(node); 5475 return li; 5476 } 5477 5478 function build() { 5479 var src = document.querySelector(SRC); 5480 if (!src) { return; } 5481 5482 var ul = mobilePanel(); 5483 if (!ul || ul.querySelector('.tws-mp-item')) { return; } 5484 5485 var head = src.querySelector('[data-tws-mp-block="head"]'); 5486 var search = src.querySelector('[data-tws-mp-block="search"]'); 5487 var foot = src.querySelector('[data-tws-mp-block="foot"]'); 5488 5489 // Search first, then the title in front of it, so the title ends up on top 5490 // without needing to know whether the other one is present. 5491 if (search) { ul.insertBefore(row('tws-mp-item-search', search), ul.firstChild); } 5492 if (head) { ul.insertBefore(row('tws-mp-item-head', head), ul.firstChild); } 5493 if (foot) { ul.appendChild(row('tws-mp-item-foot', foot)); } 5494 5495 /* Our close button forwards to Mega Menu's, rather than trying to close the 5496 panel itself, so whatever else that button does - focus, body class, 5497 animation state - still happens. The toggle is the fallback: clicking it 5498 while the panel is open closes it too. */ 5499 var close = ul.querySelector('[data-tws-mp-close]'); 5500 5501 if (close) { 5502 close.addEventListener('click', function (e) { 5503 e.preventDefault(); 5504 5505 var wrap = ul.parentElement; 5506 var real = wrap ? wrap.querySelector('button.mega-close') : null; 5507 var toggle = wrap ? wrap.querySelector('.mega-menu-toggle') : null; 5508 5509 if (real) { real.click(); } 5510 else if (toggle) { toggle.click(); } 5511 }); 5512 } 5513 5514 /* If a lazy loader has swapped the logo's src out anyway - a setting 5515 change, a different plugin, a cached page built before the attributes 5516 above were added - put the real one back. Harmless when it has not. */ 5517 var logo = ul.querySelector('.tws-mp-logo[data-lazy-src]'); 5518 5519 if (logo && logo.getAttribute('data-lazy-src')) { 5520 logo.setAttribute('src', logo.getAttribute('data-lazy-src')); 5521 logo.removeAttribute('data-lazy-src'); 5522 } 5523 5524 /* Only now is it safe for the stylesheet to retire Mega Menu's own close 5525 button and reclaim the padding that was reserved for it. If anything 5526 above failed, this class is never added and the panel keeps working the 5527 way it does without this plugin. */ 5528 if (head && close) { ul.classList.add('tws-mp-built'); } 5529 } 5530 5531 /* The header's own search button sits above the open panel, so its magnifier 5532 shows through over the menu. It cannot be picked out by CSS: the desktop 5533 and mobile search buttons are identical apart from a responsive utility 5534 class, and the burger and close button are buttons too. Script can tell 5535 them apart, so it marks them here and the stylesheet does the rest, inside 5536 the media query, leaving the desktop header alone. 5537 5538 Both search buttons are marked. The desktop one is already off the page 5539 under 1024px, so hiding it as well costs nothing and saves having to work 5540 out which row each button belongs to. */ 5541 function markHeaderSearch() { 5542 var header = document.getElementById('header'); 5543 if (!header) { return; } 5544 5545 var buttons = header.querySelectorAll('button'); 5546 5547 for (var i = 0; i < buttons.length; i++) { 5548 var b = buttons[i]; 5549 if (b.closest('[id^="mega-menu-wrap-"]')) { continue; } 5550 if (!b.querySelector('svg')) { continue; } 5551 b.classList.add('tws-mp-header-search'); 5552 } 5553 } 5554 5555 /* Match the header's search icon to the burger, on light headers only. 5556 Both the header background and the burger colour are read from the page 5557 rather than written down here: the header is white on six sites and
5558 #231F20 on Shooting UK, and the burger is #ddd on five, black on 5559 Trout & Salmon. Anything that cannot be read confidently is left alone, 5560 which leaves the icon exactly as it is today. */ 5561 function matchSearchToBurger() { 5562 var header = document.getElementById('header'); 5563 if (!header) { return; } 5564 5565 var bg = getComputedStyle(header).backgroundColor; 5566 var m = bg.match(/rgba?\(\s*(\d+)[,\s]+(\d+)[,\s]+(\d+)(?:[,\s]+([\d.]+))?/); 5567 if (!m) { return; } 5568 5569 // A see-through header cannot be judged. Leave it. 5570 if (m[4] !== undefined && parseFloat(m[4]) < 0.9) { return; } 5571 5572 var light = (m[1] * 299 + m[2] * 587 + m[3] * 114) / 1000 > 140; 5573 5574 // Dark header: the white icon is already correct. 5575 if (!light) { return; } 5576 5577 var bar = document.querySelector('.mega-menu-mobile-toggle .mega-toggle-animated-inner'); 5578 if (!bar) { return; } 5579 5580 var colour = getComputedStyle(bar).backgroundColor; 5581 var cm = colour.match(/rgba?\(\s*\d+[,\s]+\d+[,\s]+\d+(?:[,\s]+([\d.]+))?/); 5582 if (!cm) { return; } 5583 if (cm[1] !== undefined && parseFloat(cm[1]) === 0) { return; } 5584 5585 header.style.setProperty('--tws-mp-burger', colour); 5586 header.classList.add('tws-mp-match-search'); 5587 } 5588 5589 /* Mega Menu puts mega-menu-open on the toggle when the panel slides in. Watch 5590 for it rather than listening for a click, so the class stays correct however 5591 the panel was opened or closed: the burger, the close button, the escape 5592 key or a tap outside it. */ 5593 function watchToggle() { 5594 var wraps = document.querySelectorAll('[id^="mega-menu-wrap-"]'); 5595 var root = document.documentElement; 5596
5597 function readAll() { 5598 var open = false; 5599 5600 for (var i = 0; i < wraps.length; i++) { 5601 var t = wraps[i].querySelector('.mega-menu-toggle'); 5602 if (t && t.classList.contains('mega-menu-open')) { open = true; } 5603 } 5604 5605 root.classList.toggle('tws-mp-open', open); 5606 } 5607 5608 if (!window.MutationObserver) { return; } 5609 5610 var observer = new MutationObserver(readAll); 5611 5612 for (var i = 0; i < wraps.length; i++) { 5613 var toggle = wraps[i].querySelector('.mega-menu-toggle'); 5614 if (toggle) { observer.observe(toggle, { attributes: true, attributeFilter: ['class'] }); } 5615 } 5616 5617 readAll(); 5618 } 5619 5620 function init() { 5621 build(); 5622 markHeaderSearch(); 5623 matchSearchToBurger(); 5624 watchToggle(); 5625 } 5626 5627 if (document.readyState !== 'loading') { init(); } 5628 else { document.addEventListener('DOMContentLoaded', init); } 5629 5630 window.addEventListener('load', init); 5631})(); 5632</script>
5632 5633
5633<script nowprocket id="tws-card-line-clamp-js"> 5634(function () { 5635 var TOTAL = 6, FLOOR = 2; 5636 5637 function lineHeight(el) { 5638 var v = getComputedStyle(el).lineHeight; 5639 if (v !== 'normal') return parseFloat(v); 5640 var s = document.createElement('span'); 5641 s.textContent = 'A'; 5642 s.style.cssText = 'display:block;position:absolute;visibility:hidden;white-space:nowrap'; 5643 el.appendChild(s); 5644 var h = s.offsetHeight; 5645 el.removeChild(s); 5646 return h || parseFloat(getComputedStyle(el).fontSize) * 1.2; 5647 } 5648 5649 function padV(el) { 5650 var cs = getComputedStyle(el); 5651 return parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom); 5652 } 5653 5654 function runBlock(block) { 5655 var cards = [].slice.call(block.querySelectorAll('li')).filter(function (li) { 5656 return li.querySelector(':scope > div > a > h3') && li.offsetParent !== null; 5657 }); 5658 if (!cards.length) return; 5659 5660 var ctaMax = Infinity, cta = block.querySelector('li.latest-posts-image'); 5661 if (cta && cta.offsetParent !== null) { 5662 var m = parseFloat(getComputedStyle(cta).maxHeight); 5663 if (!isNaN(m)) ctaMax = m; 5664 } 5665 5666 // Read everything in the unclamped state first, then write, so the page reflows once. 5667 block.classList.add('tws-lc-measure'); 5668 var data = cards.map(function (li) { 5669 var h = li.querySelector(':scope > div > a > h3'); 5670 var p = li.querySelector(':scope > div > a > p'); 5671 var hasP = p && p.textContent.trim() !== ''; 5672 var tLH = lineHeight(h), tH = h.offsetHeight, tPad = padV(h); 5673 var bLH = hasP ? lineHeight(p) : 0, bH = hasP ? p.offsetHeight : 0, bPad = hasP ? padV(p) : 0; 5674 var bottom = h.parentNode.parentNode.getBoundingClientRect().bottom; 5675 return { 5676 h: h, p: hasP ? p : null, tLH: tLH, bLH: bLH, 5677 tN: Math.max(1, Math.round((tH - tPad) / tLH)), 5678 bN: hasP ? Math.max(1, Math.round((bH - bPad) / bLH)) : 0, 5679 fixed: (bottom - li.getBoundingClientRect().top) - (tH - tPad) - (bH - bPad) 5680 }; 5681 }); 5682 block.classList.remove('tws-lc-measure'); 5683 5684 data.forEach(function (d) { 5685 var t = Math.min(d.tN, TOTAL - Math.min(d.bN, FLOOR)); 5686 var b = Math.min(d.bN, TOTAL - t); 5687 var room = ctaMax - d.fixed; 5688 while (t * d.tLH + b * d.bLH > room) { 5689 if (b > FLOOR && b >= t) b--; 5690 else if (t > FLOOR) t--; 5691 else if (b > 1) b--; 5692 else break; 5693 } 5694 // max-height as well as the clamp: Safari puts the ellipsis on the 5695 // last line but can leave the box taller, showing half the next line. 5696 d.h.style.webkitLineClamp = t; 5697 d.h.style.maxHeight = (t * d.tLH) + 'px'; 5698 if (d.p) { 5699 d.p.style.webkitLineClamp = b; 5700 d.p.style.maxHeight = (b * d.bLH) + 'px'; 5701 } 5702 }); 5703 } 5704 5705 function run() { 5706 [].forEach.call(document.querySelectorAll('.latest-posts-block'), runBlock); 5707 } 5708 5709 var timer; 5710 function later() { clearTimeout(timer); timer = setTimeout(run, 150); } 5711 5712 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', run); 5713 else run(); 5714 window.addEventListener('load', run); 5715 window.addEventListener('resize', later); 5716 if (document.fonts && document.fonts.ready) document.fonts.ready.then(run); 5717})(); 5718</script>
5718 5719
5719<script>window.lazyLoadOptions=[{elements_selector:"img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}},{elements_selector:".rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,}];window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} 5720if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} 5721images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} 5722if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)</script>
5722<script data-no-minify="1" async src="https://www.shootinguk.co.uk/app/plugins/wp-rocket/assets/js/lazyload/17.8.3/lazyload.min.js"></script>
5722
5722<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"46a38ceef95c499da17cf2f389e2b00d","r":1,"spa":2}' crossorigin="anonymous"></script>
5722 5723</body> 5724</html> 5725 5726<!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1790910395 -->
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.