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>Contact us</title><link rel="preload" data-rocket-preload as="image" href="https://gundog-journal.com/app/uploads/sites/2/2025/01/GJ-logo-BLACK-1.png" fetchpriority="high"> 70 <meta name="description" content="Find contact details for subscriptions, editorial feedback and advertising inquiries to connect with our expert team at Gundog Journal." /> 71 <link rel="canonical" href="https://gundog-journal.com/contact/" /> 72 <meta property="og:locale" content="en_US" /> 73 <meta property="og:type" content="article" /> 74 <meta property="og:title" content="Contact us" /> 75 <meta property="og:description" content="Find contact details for subscriptions, editorial feedback and advertising inquiries to connect with our expert team at Gundog Journal." /> 76 <meta property="og:url" content="https://gundog-journal.com/contact/" /> 77 <meta property="og:site_name" content="Gundog Journal" /> 78 <meta property="article:modified_time" content="2026-09-07T09:32:47+00:00" /> 79 <meta property="og:image" content="https://gundog-journal.com/app/uploads/sites/2/2025/01/BR-Gundog-Book-Day-1-105-scaled.jpg" /> 80 <meta property="og:image:width" content="2560" /> 81 <meta property="og:image:height" content="1707" /> 82 <meta property="og:image:type" content="image/jpeg" /> 83 <meta name="twitter:card" content="summary_large_image" /> 84 <meta name="twitter:label1" content="Est. reading time" /> 85 <meta name="twitter:data1" content="2 minutes" /> 86
86<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://gundog-journal.com/contact/","url":"https://gundog-journal.com/contact/","name":"Contact us","isPartOf":{"@id":"https://gundog-journal.com/#website"},"primaryImageOfPage":{"@id":"https://gundog-journal.com/contact/#primaryimage"},"image":{"@id":"https://gundog-journal.com/contact/#primaryimage"},"thumbnailUrl":"/app/uploads/sites/2/2025/01/BR-Gundog-Book-Day-1-105-scaled.jpg","datePublished":"2023-11-22T13:41:35+00:00","dateModified":"2026-09-07T09:32:47+00:00","description":"Find contact details for subscriptions, editorial feedback and advertising inquiries to connect with our expert team at Gundog Journal.","breadcrumb":{"@id":"https://gundog-journal.com/contact/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://gundog-journal.com/contact/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://gundog-journal.com/contact/#primaryimage","url":"/app/uploads/sites/2/2025/01/BR-Gundog-Book-Day-1-105-scaled.jpg","contentUrl":"/app/uploads/sites/2/2025/01/BR-Gundog-Book-Day-1-105-scaled.jpg","width":2560,"height":1707,"caption":"A black and golden labrador sitting looking at the camera"},{"@type":"BreadcrumbList","@id":"https://gundog-journal.com/contact/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://gundog-journal.com/"},{"@type":"ListItem","position":2,"name":"Contact us"}]},{"@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>
86 87 <!-- / Yoast SEO plugin. --> 88 89 90<link rel='dns-prefetch' href='//www.shootinguk.co.uk' /> 91<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> 92<style id='global-styles-inline-css'> 93: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;
93--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;
93--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%);
93--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
93: 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
93r: 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
93e-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
93rder-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;}
93.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;} 94:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} 95:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} 96:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} 97</style> 98<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' /> 99<link rel='stylesheet' id='dashicons-css' href='https://gundog-journal.com/wp-includes/css/dashicons.min.css?ver=6.7.2' media='all' /> 100<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=1790929966' media='all' /> 101<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' /> 102<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' /> 103<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' /> 104<link rel='stylesheet' id='app/0-css' href='https://www.shootinguk.co.uk/app/themes/roots-sage/public/css/app.e0d098.css' media='all' /> 105<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' /> 106<style id="tws-initials-avatar-css" data-tws-version="1.33.0">.tws-initials-avatar{display:inline-grid;place-items:center;border-radius:50%;
106width: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>
106<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 106
106
107<script id="search-filter-plugin-build-js-extra"> 108var SF_LDATA = {"ajax_url":"https:\/\/gundog-journal.com\/wp-admin\/admin-ajax.php","home_url":"https:\/\/gundog-journal.com\/","extensions":[]}; 109</script>
vendor: 1 bytes, line 109
109
110<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 110
110
111<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>
111 112 <style id="tws-byline-css" data-tws-version="1.33.0"> 113 /* The photograph stands outside the ruled bar rather than inside it. The rules then only have 114 to clear the name and the date, so the bar is shallower at 60px than the 68px it was, and 115 the circle can go to 76px - a third bigger than the 56px it was - without the block eating 116 much more of the page. The rules are drawn as pseudo-elements rather than as borders so the 117 picture can be lifted above them: each starts at the middle of the circle and is hidden 118 behind it until it clears the edge, so the rules appear to come out of the sides of the 119 picture with nothing showing to the left of it. Starting them at the centre rather than at 120 the left edge is what keeps them tucked away - a chord across a circle always covers the 121 centre, whatever the diameter. */ 122 .tws-byline{ position:relative; display:flex; justify-content:space-between; align-items:center; 123 gap:16px; border:0; padding:9px 0 9px 90px; margin:32px 0; width:100%; } 124 .tws-byline::before, .tws-byline::after{ content:''; position:absolute; left:38px; right:0; 125 height:1px; background:#D6D6D6; } 126 /* 38px is half the picture, so the rule begins behind it whatever size the circle is. */ 127 .tws-byline::before{ top:0; } 128 .tws-byline::after{ bottom:0; } 129 130 .tws-byline__author{ min-width:0; } 131 .tws-byline__who{ display:flex; align-items:center; gap:13px; min-width:0; 132 text-decoration:none; color:inherit; } 133 /* The theme underlines links inside article content. Everything in here is a picture or a 134 heading, and an underlined date reads as a second, broken link. */ 135 .tws-byline__who, .tws-byline__who *{ text-decoration:none; } 136 137 /* z-index because ::after comes after this in tree order, and without it the bottom rule 138 would be painted across the face rather than behind it. */ 139 /* The disc behind the picture is the site's own colour rather than a neutral grey, so a 140 logo saved as a transparent PNG comes out on the brand colour of whichever of the seven 141 titles it is being read on. Behind an ordinary photograph it is never seen. */ 142 .tws-byline__pic{ position:absolute; left:0; top:50%; transform:translateY(-50%); z-index:1; 143 width:76px; height:76px; flex:0 0 76px; border-radius:50%; overflow:hidden; 144 background:rgb(var(--color-primary, 206 16 30)); border:1px solid #E0E0E0; 145 box-sizing:border-box; display:block; --tws-avatar:76px; } 146 .tws-byline__pic img, 147 .tws-byline__pic .avatar{ width:100%; height:100%; object-fit:cover; display:block; 148 transition:transform .3s; border-radius:0; } 149 .tws-byline__who:hover .tws-byline__pic img, 150 .tws-byline__who:hover .tws-byline__pic .avatar{ transform:scale(1.07); } 151 /* Somebody with no photograph gets initials, the same as the hub. */ 152 /* get_avatar is asked for 112 so the photograph is sharp on a retina screen. The initials 153 fallback is lettering, not a picture, and does not want doubling: --tws-avatar above tells it 154 the size the circle really is, and it works the type out from that. 155 The display is restated because the rule above catches .avatar, which the initials span also 156 carries, and block would leave the letters flush to the top left corner. */ 157 .tws-byline__pic .tws-initials-avatar{ width:100%; height:100%; border:0; 158 display:grid; place-items:center; } 159 160 .tws-byline__text{ min-width:0; } 161 .tws-byline__name{ display:block; font-size:17px; font-weight:700; line-height:1.25; 162 color:#231F20; letter-spacing:-.005em; } 163 .tws-byline__who:hover .tws-byline__name{ color:rgb(var(--color-primary)); } 164 .tws-byline__date{ display:block; font-size:12px; line-height:1.5; color:#767676; margin-top:1px; } 165 .tws-byline__date time{ font-size:12px; } 166 167 .tws-byline__share{ display:flex; align-items:center; gap:11px; flex-shrink:0; } 168 .tws-byline__label{ font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; 169 color:#767676; } 170 .tws-byline__icons{ display:flex; gap:6px; } 171 .tws-byline__icons a{ display:grid; place-items:center; width:32px; height:32px; 172 border:1px solid #DCDCDC; color:#333; text-decoration:none; transition:.15s; } 173 .tws-byline__icons svg{ width:17px; height:17px; display:block; } 174 .tws-byline__icons a:hover{ background:rgb(var(--color-primary)); border-color:rgb(var(--color-primary)); } 175 176 /* app.css line 443 forces .social-icons-block .social-icon path to black !important, and to 177 the brand colour on hover. Left alone that gives a red icon on a red box - invisible. This 178 is the narrowest possible answer to it: only inside this bar, only on hover. */ 179 .tws-byline__icons a:hover .social-icon path{ fill:#fff !important; } 180 181 @media (max-width:600px){ 182 /* Stacked, so the word Share survives on a phone. The bar on a phone is left exactly as it 183 was: the picture goes back inside it, and the rules back to the full width. */ 184 .tws-byline{ flex-direction:column; align-items:stretch; gap:0; padding:10px 0; 185 margin:20px 0; } 186 .tws-byline::before, .tws-byline::after{ left:0; } 187 .tws-byline__share{ justify-content:space-between; margin-top:10px; padding-top:9px; 188 border-top:1px solid #EDEDED; } 189 .tws-byline__pic{ position:static; transform:none; 190 width:52px; height:52px; flex:0 0 52px; --tws-avatar:52px; } 191 .tws-byline__name{ font-size:16px; } 192 } 193 </style> 194 <link rel='shortlink' href='https://gundog-journal.com/?p=197' /> 195 <!-- Meta Pixel Code --> 196
196<script type="text/plain" data-service="facebook" data-category="marketing">
vendor: 446 bytes, lines 196-206
196 197 !function(f,b,e,v,n,t,s) 198 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 199 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 200 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 201 n.queue=[];t=b.createElement(e);t.async=!0; 202 t.src=v;s=b.getElementsByTagName(e)[0]; 203 s.parentNode.insertBefore(t,s)}(window, document,'script', 204 'https://connect.facebook.net/en_US/fbevents.js'); 205 206 fbq('init', '
2061055197427285042
vendor: 40 bytes, lines 206-208
206'); 207 fbq('track', 'PageView'); 208
208</script>
208 209 210 <noscript> 211 <img height="1" width="1" style="display:none" 212 src="https://www.facebook.com/tr?id=1055197427285042&ev=PageView&noscript=1" 213 alt="" /> 214 </noscript> 215 <!-- End Meta Pixel Code --> 216 217<!-- This site is using AdRotate v5.19.2 to display their advertisements - https://ajdg.solutions/ --> 218<!-- AdRotate CSS --> 219<style type="text/css" media="screen"> 220 .g { margin:0px; padding:0px; overflow:hidden; line-height:1; zoom:1; } 221 .g img { height:auto; } 222 .g-col { position:relative; float:left; } 223 .g-col:first-child { margin-left: 0; } 224 .g-col:last-child { margin-right: 0; } 225 @media only screen and (max-width: 480px) { 226 .g-col, .g-dyn, .g-single { width:100%; margin-left:0; margin-right:0; } 227 } 228</style> 229<!-- /AdRotate CSS --> 230 231 <style>.cmplz-hidden { 232 display: none !important; 233 }</style> <link rel="apple-touch-icon" href="/app/uploads/sites/2/2025/01/GJ-Favicons2.png" sizes="57x57"> 234 <link rel="icon" type="image/png" href="/app/uploads/sites/2/2025/01/GJ-Favicons2.png"> 235 <meta name="msapplication-TileColor" content="#fff"> 236 <meta name="msapplication-TileImage" content="/app/uploads/sites/2/2025/01/GJ-Favicons2.png"> 237 <meta name="theme-color" content="#fff"> 238 <link rel="shortcut icon" type="image/png" href="/app/uploads/sites/2/2025/01/GJ-Favicons2.png"> 239 <link rel="shortcut icon" type="image/x-icon" href="/app/uploads/sites/2/2025/01/GJ-Favicons2.png"> 240<style id="tws-ad-css"> 241.tws-nlad{display:block;position:relative;margin:32px 0 36px;background:#fff;border:1px solid #c4c4c4;transition:transform .18s ease,box-shadow .18s ease} 242.tws-nlad-inner{display:flex;flex-direction:column} 243.tws-nlad-media{display:block;position:relative;flex:0 0 auto;margin:0;line-height:0;background:#f2f2f2;overflow:hidden;aspect-ratio:1040/347} 244.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} 245.tws-nlad-body{display:flex;flex-direction:column;justify-content:center;padding:20px 20px 22px;min-width:0} 246.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} 247.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} 248.tws-nlad-actions{margin-top:18px} 249.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} 250/* the whole card is the click target: the button's ::after is stretched over it, so the button 251 stays the one real link, which is better for readers and for search than a block-level anchor */ 252.tws-nlad-btn::after{content:"";position:absolute;inset:0;z-index:1} 253.tws-nlad:hover,.tws-nlad:focus-within{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.14)} 254.tws-nlad:hover .tws-nlad-btn,.tws-nlad:focus-within .tws-nlad-btn{background:#000000} 255@media (prefers-reduced-motion:reduce){.tws-nlad{transition:none}.tws-nlad:hover,.tws-nlad:focus-within{transform:none}} 256/* Side by side only from 1280 up. Between 1024 and 1279 the 70/30 split is in force but the main 257 column is at its narrowest (650px), so a 40% picture column is 259px against copy that wraps to 258 ~346px and the slot turns portrait. Below 1280 the block keeps the newsletter's stacked shape, 259 which also keeps the desktop crop predictable at roughly 1.1:1 to 1.4:1. */ 260/* WHY THE PICTURE COLUMN IS STILL A PERCENTAGE, AND THE CROP THAT COSTS. Measured 15 September, 261 after two attempts at removing the crop were tried and rolled back. The picture takes 40% of 262 the card and stretches to whatever height the copy needs, so the box ratio is whatever falls 263 out of that. Against the 1200x900 the desk supplies: 264 window 1280, card 792px, box 316x289 (1.09:1) -> 18% off the SIDES, 25% with long copy 265 window 1366, card 852px, box 340x289 (1.18:1) -> 12% off the sides 266 window 1440, card 904px, box 361x264 (1.37:1) -> 3% off top and bottom 267 window 1600, card 1016px, box 406x264 (1.54:1) -> 13% off top and bottom
268 window 1920, card 1246px, box 498x250 (1.99:1) -> 33% off top and bottom 269 This is a DELIBERATE trade, made by Lee: the alternatives each cost more than the crop does. 270 A fixed pixel picture column with a 4:3 floor removes the crop entirely but only from a 1440 271 window up, which loses the side-by-side layout for 1280 and 1366 readers (tried as v0.4.0, 272 rolled back). Asking for a square instead removes the crop at every width (tried as v0.4.1, 273 measured as uncropped in all eighteen cases, rolled back) but changes the asset the desk has 274 already booked and delivered. Widening the percentage does not work at all: a wider picture 275 leaves a narrower text column, the copy wraps to more lines, the card grows taller and the box 276 goes narrower again - measured at 400, 420, 440 and 460px, worse every time. 277 So the crop stays, and the mitigation lives in the image spec instead: key content inside the 278 central 900x600 of the 1200x900, because up to 25% can come off the sides and up to 33% off the 279 top and bottom depending on the reader's window and how long the copy runs. Do not "fix" this 280 in CSS without reading _DOCS/newsletter-ad-block-markup-and-css.md first. */ 281/* The :not(--stacked) matters. With no 4:3 supplied there is only the 3:1 banner, and putting 282 that in a 40% column crops it to about 1.1:1, which slices the advertiser's wordmark off both 283 ends. Simon's spec is explicit: no 4:3 means the banner runs full width above the copy at 284 EVERY size. So the row layout is switched off for that case rather than fed a picture it 285 cannot use. */ 286@media (min-width:1280px){ 287 .tws-nlad--article:not(.tws-nlad--stacked) .tws-nlad-inner{flex-direction:row;align-items:stretch} 288 .tws-nlad--article:not(.tws-nlad--stacked) .tws-nlad-media{flex:0 0 40%;align-self:stretch;aspect-ratio:auto;min-height:250px} 289 .tws-nlad--article:not(.tws-nlad--stacked) .tws-nlad-body{flex:1 1 auto;padding:26px 30px 28px} 290 .tws-nlad--article:not(.tws-nlad--stacked) .tws-nlad-title{font-size:24px !important} 291 292 /* FIXED RATIO, the default, and the whole of the difference between the two settings. 293 The picture column becomes a fixed 400px instead of 40% of the card, and the box is given a 294 floor of --tws-nlad-minh, which the block sets per advert to 400 divided by the picture's own 295 ratio - 300px for a 1200x900. The floor is what stops the top and bottom being cropped: at a 296 wide window, where the copy is short, the box sits exactly on 400x300 and the whole picture is 297 shown, and the card takes its height from the picture instead of the other way round. The copy 298 is already vertically centred, so the extra height appears as space above the title and below 299 the button. 300 It has to be a floor and not an exact aspect-ratio. If the box were pinned exactly, then at 301 1280 and 1366 - where the copy needs more height than a 400px 4:3 provides - the card would be 302 taller than the picture and leave a white gap beneath it. A floor lets the box grow taller 303 there, so the crop comes off the sides instead, gradually, and there is never a gap. 304 Measured over six window widths and three copy lengths, against the supplied 1200x900: 305 fixed ratio - no crop at all from 1440 up; 6% off the sides at 1366, 13% at 1280 306 responsive - 33% off top and bottom at 1920, 13% at 1600, 3% at 1440, 307 then 12% off the sides at 1366 and 18% at 1280 308 Responsive is kept as a setting because it makes a shorter card, which suits a picture with 309 nothing important near the top or bottom edge. */ 310 .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)} 311} 312/* sidebar: always stacked, and always the 3:1 banner, because the column is 300px wide */ 313.tws-nlad--sidebar{margin:0 0 30px} 314.tws-nlad--sidebar .tws-nlad-body{padding:16px 16px 18px} 315.tws-nlad--sidebar .tws-nlad-title{font-size:19px !important} 316.tws-nlad--sidebar .tws-nlad-copy{font-size:14px !important;line-height:21px !important} 317.tws-nlad--sidebar .tws-nlad-btn{display:flex;width:100%;min-height:46px;padding:13px 16px} 318/* The label. Simon set it centrally in the Engine and it is EMPTY as at 14 September, so no 319 element is printed at all - which is also what Lee asked for. If words arrive later they render 320 here without a code change: a small tab on the brand colour above the card, the same idiom as 321 the site's own black "Related Articles" tab. */ 322.tws-nlad--labelled{margin-top:54px} 323.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} 324/* demo only, and deliberately outside the card so the design is never judged with it on */ 325.tws-nlad-demo{outline:2px dashed #C58B00;outline-offset:3px} 326.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} 327</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> 328<style id="twsnl-sub-css"> 329.twsnl-sub{position:relative;display:inline-block} 330.twsnl-sub--mobile{display:block;width:100%;max-width:340px;margin:0 auto} 331.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} 332.twsnl-sub--mobile .twsnl-sub-btn{width:100%;justify-content:center} 333.twsnl-sub-btn:focus-visible{outline:2px solid #B28751;outline-offset:3px} 334.twsnl-sub-chev{width:12px;height:12px;flex:0 0 12px;transition:transform .2s ease} 335.twsnl-sub-btn[aria-expanded="true"] .twsnl-sub-chev{transform:rotate(180deg)} 336.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} 337.twsnl-sub-dd[hidden]{display:none} 338@keyframes twsnl-sub-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}} 339.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)} 340.twsnl-sub--mobile .twsnl-sub-dd{left:0;right:0;min-width:0} 341.twsnl-sub--mobile .twsnl-sub-caret{right:auto;left:50%;margin-left:-6px} 342.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} 343.twsnl-sub-row:last-child{border-bottom:0} 344.twsnl-sub-row:hover,.twsnl-sub-row:focus-visible{background:#f6f4f2;color:#231f20;text-decoration:none} 345.twsnl-sub-row:focus-visible{outline:2px solid #B28751;outline-offset:-2px} 346.twsnl-sub-row--mag{padding:18px;gap:16px} 347.twsnl-sub-text{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0} 348.twsnl-sub-title{font-size:15px;font-weight:600;letter-spacing:.2px;line-height:1.3} 349.twsnl-sub-row--mag .twsnl-sub-title{font-size:17px} 350.twsnl-sub-desc{font-size:12.5px;font-weight:400;line-height:1.45;color:#6b6764} 351.twsnl-sub-ico{width:20px;height:20px;flex:0 0 20px;margin-top:2px;color:#B28751} 352.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} 353.twsnl-sub-row:hover .twsnl-sub-arrow,.twsnl-sub-row:focus-visible .twsnl-sub-arrow{opacity:1;transform:none} 354.twsnl-sub-cover{flex:0 0 74px;width:74px;display:block;box-shadow:0 3px 10px rgba(0,0,0,.28)} 355.twsnl-sub-cover img,.twsnl-sub-cover picture{display:block;width:100%!important;height:auto!important} 356.twsnl-sub-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#B28751;margin-bottom:3px} 357.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} 358.twsnl-sub-link .twsnl-sub-arrow{opacity:1;transform:none;margin-top:0} 359@media(prefers-reduced-motion:reduce){.twsnl-sub-dd{animation:none}.twsnl-sub-chev,.twsnl-sub-arrow{transition:none}} 360@media(max-width:1023px){ 361/* The subscribe row rolls away once the reader starts scrolling, leaving the 362 logo and the menu button. .nav-header-main carries min-height:80px from the 363 mega-menu stylesheet, which beats max-height, so that has to go too. */ 364#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} 365#header.twsnl-hdr-compact .nav-header-main.justify-evenly{max-height:0;min-height:0!important;opacity:0;padding-bottom:0!important}
366/* That overflow would clip the panel, so it is released while one is open. */ 367#header.twsnl-sub-open .nav-header-main.justify-evenly{overflow:visible} 368@media(prefers-reduced-motion:reduce){#header .nav-header-main.justify-evenly{transition:none}} 369} 370</style> 371 <style id="tws-search-and-display-css"> 372/* TWS Search & Display. Scoped tws-is- classes only: per CLAUDE.md 5.1 no new Tailwind 373 class would have any CSS behind it, because nobody in this workflow runs the build. */ 374.tws-is-panel, .tws-is-panel * { border-radius: 0 !important; box-sizing: border-box; } 375.tws-is-panel { font-family: inherit; } 376 377/* The header dropdowns are the theme's own; only the padding is neutralised so the white 378 panel sits flush against the black navigation bar with no gap above it. */ 379.desktop-search-dropdown > .container, 380.mobile-search-dropdown .header-search { padding-top: 0 !important; padding-bottom: 0 !important; } 381/* app.css also puts `border-top: 1px solid #e5e5e5` on this element. The dropdown spans the 382 full viewport (absolute, left-0 right-0) and the plugin makes it transparent, so that 383 border is the only part of it visible outside the white panel: a pale full-width line 384 sitting between the black navigation bar and the dimmed page. It was the theme's divider 385 for a white full-width dropdown; with a centred panel and an overlay it is just a seam. */ 386.desktop-search-dropdown { background: transparent !important; box-shadow: none !important; border-top: 0 !important; } 387 388/* THE FLASH ON EVERY PAGE LOAD. 389 The dropdowns are ordinary markup carrying x-show="expanded", and x-show does nothing at 390 all until Alpine boots - so between first paint and Alpine initialising, the browser draws 391 the panel open. The theme has always done this; it only became noticeable once the panel 392 was a tall white box instead of a small input. 393 394 So the dropdowns are hidden by CSS until Alpine says it has started, and the ONLY job of 395 the script below is to add `tws-sd-alpine-ready` to <html> when it hears Alpine's 396 `alpine:initialized` event. The hiding itself is pure CSS, present in the very first frame, 397 which is the only thing that can beat a flash - a class added by script cannot hide 398 anything in time, because scripts run after the page has already painted. Adding a class to 399 REVEAL is fine: by then Alpine owns the element and has already hidden it itself. 400 401 Do NOT be tempted by `[x-show]:not([style])` as a stand-in for "Alpine has not touched 402 this". It looks right and it is wrong, and it cost a live regression on 18 August: Alpine 403 v3's x-show does `0 === el.style.length && el.removeAttribute('style')` when it SHOWS an 404 element, so an element that has just been opened has no style attribute either. The 405 selector matched again, and the panel could never be opened at all. 406 407 That timeout is the escape hatch. If Alpine never boots, the class goes on anyway after 408 four seconds and the panel is revealed, because a visible search box that still works on 409 Enter beats no search box at all. */ 410html:not(.tws-sd-alpine-ready) .desktop-search-dropdown[x-show], 411html:not(.tws-sd-alpine-ready) .mobile-search-dropdown[x-show] { display: none !important; } 412 413/* app.css caps the wrapper the panel sits in: 414 .desktop-search-dropdown .header-search { margin: 0 auto; max-width: 600px } 415 That was sized for the old Search & Filter box, and it silently overrode the panel width 416 setting - no matter what percentage was chosen the panel could never exceed 600px, which 417 is why raising the setting appeared to do nothing at all. The cap has no purpose once the 418 form has been replaced, so it is lifted here. !important because this rule and the 419 theme's have identical specificity and the stylesheet order is not ours to rely on. */ 420.desktop-search-dropdown .header-search, 421.mobile-search-dropdown .header-search { 422 max-width: none !important; 423 width: 100% !important; 424 padding-left: 0 !important; 425 padding-right: 0 !important; 426} 427 428/* The configured width applies on a wide desktop. As the window narrows, a fixed 429 percentage leaves the panel looking mean and squeezes the result rows, so it takes a 430 progressively larger share and finally the full width. Each step still respects the 431 setting: a site configured narrower stays proportionally narrower throughout. */ 432.desktop-search-dropdown .tws-is-panel { 433 width: 50vw; 434 min-width: 460px; 435 max-width: 100%; 436 margin: 0 auto; 437 background: #fff; 438 box-shadow: 0 24px 48px rgba(0,0,0,.30); 439 padding: 24px 26px 26px; 440} 441@media (max-width: 1500px) { 442 .desktop-search-dropdown .tws-is-panel { width: 60vw; } 443} 444@media (max-width: 1250px) { 445 .desktop-search-dropdown .tws-is-panel { width: 73vw; } 446} 447.mobile-search-dropdown .tws-is-panel { 448 width: 100%; 449 background: #fff; 450 box-shadow: 0 18px 36px rgba(0,0,0,.30); 451 padding: 16px 15px 18px; 452} 453 454.tws-is-box { display: flex; align-items: center; gap: 12px; border: 2px solid #b38750; padding: 13px 16px; background: #fff; } 455.tws-is-box .tws-is-icon { flex: none;
455 width: 20px; height: 20px; color: #888; } 456.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; } 457.tws-is-input::placeholder { color: #a9a9a9; opacity: 1; } 458/* Chrome and Safari draw their own clear cross on type=search. Without this there are two. */ 459.tws-is-input::-webkit-search-cancel-button, .tws-is-input::-webkit-search-decoration { -webkit-appearance: none; appearance: none; display: none; } 460.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; } 461.tws-is-clear[hidden] { display: none; } 462 463.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; } 464.tws-is-meta .tws-is-kbd { text-transform: none; letter-spacing: 0; } 465.tws-is-meta kbd { background: #f3f3f3; border: 1px solid #ddd; padding: 1px 5px; font-size: 10.5px; font-family: inherit; } 466 467.tws-is-results { list-style: none; margin: 0; padding: 0; } 468.tws-is-item { display: flex; gap: 16px; align-items: center; padding: 10px; cursor: pointer; } 469.tws-is-item + .tws-is-item { border-top: 1px solid #f0efec; } 470.tws-is-item:hover, .tws-is-item.is-active { background: rgba(0,0,0,.04); } 471.tws-is-item a { text-decoration: none; color: inherit; display: flex; gap: 16px; align-items: center; width: 100%; } 472.tws-is-thumb { flex: none; width: 110px; height: 72px; overflow: hidden; background: #e6e4e0; } 473/* Imagify rewraps images in <picture> and moves the class onto the wrapper (CLAUDE.md 5.5), 474 so the size is pinned on the container and any descendant image is forced to fill it. */ 475.tws-is-thumb picture, .tws-is-thumb img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; } 476.tws-is-text { min-width: 0; } 477.tws-is-cat { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #b38750; margin-bottom: 2px; } 478/* These are spans, and a span is inline: without display:block the byline ran straight on 479 from the end of the headline ("...British fly fairBy Hollis Butler"). */ 480.tws-is-title { display: block; font-size: 16.5px; font-weight: 600; line-height: 1.35; color: #1a1a1a; margin: 0; font-family: inherit; } 481/* Every highlight in the panel, not just the one in the headline. 482 Only the title was styled before, so the match inside the byline fell through to the 483 browser's default <mark> - bright yellow - and the two sat side by side in different 484 colours. Scoped to the panel, and a translucent tint of the site's own accent rather 485 than a second hard-coded colour, so it is right on all seven sites. */ 486.tws-is-panel mark { background: rgba(179, 135, 80, .16); color: inherit; padding: 0 1px; } 487.tws-is-byline { display: block; font-size: 12px; color: #767676; margin-top: 3px; } 488.tws-is-byline b { font-weight: 600; color: #444; } 489 490.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; } 491.tws-is-viewall:hover, .tws-is-viewall:focus { filter: brightness(.85); color: #fff; } 492 493.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; } 494.tws-is-chips { display: flex; flex-wrap: wrap; gap: 8px; } 495.tws-is-chip { border: 1px solid #ddd; background: #fafafa; padding: 7px 14px; font-size: 13px; color: #444; cursor: pointer; font-family: inherit; } 496.tws-is-chip:hover { border-color: #b38750; color: #b38750; } 497.tws-is-note { padding: 22px 8px; text-align: center; color: #777; font-size: 14px; } 498 499/* Dimming the page behind is the part Lee singled out. Below the header (z 9999) and below 500 the sticky advertisement in layouts/app.blade.php (z 99999), so neither is ever covered. */ 501.tws-is-dim { display: none; position: fixed; inset: 0; background: rgba(20,18,16,.45); z-index: 9998; pointer-events: none; } 502body.tws-is-open .tws-is-dim { display: block; } 503 504@media (prefers-reduced-motion: no-preference) { 505 body.tws-is-open .tws-is-panel { animation: tws-is-drop .22s ease-out; } 506 @keyframes tws-is-drop { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } 507} 508 509@media (max-width: 1023px) { 510 .desktop-search-dropdown .tws-is-panel { width: 100%; min-width: 0; padding: 16px 15px 18px; } 511 .tws-is-thumb { width: 84px; height: 58px; } 512 .tws-is-title { font-size: 14.5px; } 513 .tws-is-cat { font-size: 9.5px; } 514 .tws-is-byline { font-size: 11px; } 515 .tws-is-meta .tws-is-kbd { display: none; } 516 .tws-is-viewall { font-size: 12.5px; } 517} 518 519/* A panel dropped into page content by the theme's Search block, rather than the header. */ 520:not(.desktop-search-dropdown):not(.header-search) > .tws-is-panel { background: transparent; box-shadow: none; padding: 0; } 521</style>
522<script id="tws-search-and-display-boot"> 523/* Releases the anti-flash rule above. Runs in the head, before the theme bundle, so the 524 listener is in place well before Alpine dispatches its event. 525 526 Three ways in, because being stuck hidden is far worse than a brief flash: 527 1. alpine:initialized - the normal path, fires once Alpine has taken over the page; 528 2. Alpine already present - covers this script somehow running late; 529 3. a four second timeout - if Alpine never boots at all the search is still reachable. */ 530(function () { 531 var el = document.documentElement; 532 var released = false; 533 534 function release() { 535 if (released) { return; } 536 537 released = true; 538 el.classList.add('tws-sd-alpine-ready'); 539 } 540 541 document.addEventListener('alpine:initialized', release); 542 543 if (window.Alpine) { release(); } 544 545 setTimeout(release, 4000); 546})(); 547</script>
547 548 <style id="tws-search-and-display-pagination-css"> 549/* TWS Search & Display - pagination as buttons. 550 Colour comes from the theme's own --color-primary custom property, so each site gets its 551 own red without this file knowing anything about it. The hex on the line above each var() 552 is the fallback, read from Theme Settings, for anywhere the property is not set. */ 553 554/* Centre the pager. The archive block ships justify-start, so this is the rule that moves 555 the numbers from the left edge into the middle of the column. */ 556.posts-pagination { 557 justify-content: center !important; 558 align-items: center; 559 flex-wrap: wrap; 560 gap: 8px !important; 561} 562 563/* --------------------------------------------------------------- 564 Numbered pager: category, tag and the landing pages that use the 565 paginated-posts block. paginate_links() prints .page-numbers on 566 every item, .current on the page you are on, .dots on the ellipsis 567 and .prev / .next on the arrows. 568 --------------------------------------------------------------- */ 569.posts-pagination .page-numbers { 570 display: inline-flex; 571 align-items: center; 572 justify-content: center; 573 min-width: 44px; 574 height: 44px; 575 padding: 0 14px; 576 font-size: 16px !important; 577 font-weight: 600; 578 line-height: 1; 579 text-decoration: none; 580 color: #231F20 !important; 581 background: #fff; 582 border: 1px solid #d9d9d9; 583 transition: background .15s ease, color .15s ease, border-color .15s ease; 584} 585 586.posts-pagination a.page-numbers:hover { 587 border-color: #b38750; 588 border-color: rgb(var(--color-primary)); 589 color: #b38750 !important; 590 color: rgb(var(--color-primary)) !important; 591} 592 593.posts-pagination .page-numbers.current { 594 background: #b38750; 595 background: rgb(var(--color-primary)); 596 border-color: #b38750; 597 border-color: rgb(var(--color-primary)); 598 color: #fff !important; 599} 600 601.posts-pagination .page-numbers.dots { 602 background: transparent; 603 border-color: transparent; 604 min-width: 20px; 605 padding: 0 2px; 606 color: #767676 !important; 607} 608 609/* On a phone the full set can spill onto a second row and strand the forward arrow on its 610 own, so the buttons tighten up rather than wrap. */ 611@media (max-width: 480px) { 612 .posts-pagination { 613 gap: 6px !important; 614 } 615 616 .posts-pagination .page-numbers { 617 min-width: 38px; 618 height: 38px; 619 padding: 0 8px; 620 font-size: 15px !important; 621 } 622} 623 624/* --------------------------------------------------------------- 625 Search results pager. get_the_posts_navigation() prints a nav with 626 two stacked divs, which is why Older and Newer sit on top of each 627 other today. This puts them side by side as buttons. 628 --------------------------------------------------------------- */ 629.posts-pagination .navigation, 630.posts-pagination .posts-navigation { 631 width: 100%; 632} 633 634.posts-pagination .nav-links { 635 display: flex; 636 justify-content: center; 637 align-items: center; 638 gap: 10px; 639 flex-wrap: wrap; 640} 641 642.posts-pagination .nav-links a { 643 display: inline-flex; 644 align-items: center; 645 justify-content: center; 646 padding: 13px 22px; 647 font-size: 16px; 648 font-weight: 600; 649 letter-spacing: .34px; 650 line-height: 1; 651 text-decoration: none; 652 color: #fff !important; 653 background: #b38750; 654 background: rgb(var(--color-primary)); 655 transition: filter .15s ease; 656} 657 658.posts-pagination .nav-links a:hover { 659 filter: brightness(.85); 660} 661</style> 662 <style id="tws-search-and-display-ratio-css"> 663 664/* --------------------------------------------------------------- 665 Listing picture at 1.88:1, matching the article featured image. 666 667 The paginated-posts block prints 668 <ul class="flex flex-col gap-[40px] lg:gap-[10px]"> 669 <li class="gap-[10px] lg:gap-[15px] flex flex-wrap pb-[10px] border-b â¦"> 670 <div class="relative w-full lg:w-[285px] lg:h-[180px] overflow-hidden 671 aspect-[2/1] lg:aspect-[1.58/1]"> picture 672 <div class="flex flex-col ⦠lg:w-[calc(100%-285px-40px)]"> text 673 --------------------------------------------------------------- */ 674 675/* Desktop, 1024px up (Tailwind lg, where the picture stops being full width). 676 285x180 becomes 338x180; 338 / 180 = 1.878. */ 677@media (min-width: 1024px) { 678 679 ul.flex.flex-col.gap-\[40px\].lg\:gap-\[10px\] > li > div[class*="lg:w-[285px]"] { 680 width: 338px !important; 681 flex: 0 0 338px; 682 height: 180px !important; 683 aspect-ratio: 1.88 / 1 !important; 684 } 685 686 ul.flex.flex-col.gap-\[40px\].lg\:gap-\[10px\] > li > div[class*="lg:w-[calc(100%-285px-40px)]"] { 687 width: calc(100% - 378px) !important; 688 } 689} 690 691/* Below 1024px the picture is already full width, so only its shape changes: 2:1 to 1.88:1. */ 692@media (max-width: 1023px) { 693 694 ul.flex.flex-col.gap-\[40px\].lg\:gap-\[10px\] > li > div[class*="lg:w-[285px]"] { 695 aspect-ratio: 1.88 / 1 !important; 696 } 697} 698 699/* Imagify is set to serve WebP with <picture> tags, which lifts the class attribute off the 700 <img> and onto the <picture>
700. The inner img therefore loses object-cover / h-full / w-full 701 and falls back to its natural size, on those images that happen to have a WebP version. 702 Rules for both elements, at every width. CLAUDE.md 5.5. */ 703ul.flex.flex-col.gap-\[40px\].lg\:gap-\[10px\] > li > div[class*="lg:w-[285px]"] picture, 704ul.flex.flex-col.gap-\[40px\].lg\:gap-\[10px\] > li > div[class*="lg:w-[285px]"] img { 705 display: block; 706 width: 100% !important; 707 height: 100% !important; 708 object-fit: cover; 709} 710</style> 711 <style id="tws-comp-css"> 712.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} 713.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} 714.tws-flag.tws-flag--win{background:#C8102E;color:#fff} 715.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} 716.tws-comp-pill i{width:7px;height:7px;border-radius:50%;background:#C8102E;display:inline-block} 717.tws-comp-pill--dark{position:static;background:#231F20;color:#fff} 718.tws-comp-pill--dark i{background:#ff4d57} 719.tws-comp-card{position:relative;display:flex;flex-direction:column;background:#f5f3ef;color:#231F20;transition:transform .18s ease,box-shadow .18s ease} 720.tws-comp-card:hover,.tws-comp-card:focus-within{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.14)} 721@media (prefers-reduced-motion:reduce){.tws-comp-card{transition:none}.tws-comp-card:hover{transform:none}} 722.tws-comp-pic{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#ddd} 723.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} 724.tws-comp-body{display:flex;flex-direction:column;gap:8px;padding:16px 16px 18px;flex:1} 725.tws-comp-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px} 726#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} 727#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} 728#app#app .tws-comp-blurb,.tws-comp-blurb{font-size:15px;line-height:1.5;color:#4a4a4a} 729#app#app .tws-comp-free,.tws-comp-free{font:400 12px/1.3 'Open Sans',Arial,sans-serif !important;color:#666} 730#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} 731.tws-comp-card a.tws-comp-btn::after{content:"";position:absolute;inset:0;z-index:1} 732.tws-comp-card--card .tws-comp-btn{align-self:flex-start;margin-top:auto} 733.tws-comp-card--wide{flex-direction:row;margin:32px 0;border:1px solid #e3ded6} 734.tws-comp-card--wide .tws-comp-pic{flex:0 0 40%;aspect-ratio:auto;min-height:220px} 735.tws-comp-card--wide .tws-comp-body{justify-content:center;gap:10px;padding:22px 24px} 736#app#app .tws-comp-card--wide .tws-comp-title{font-size:24px;line-height:1.25} 737.tws-comp-card--side{background:#231F20;color:#fff;margin:0 0 30px;display:none;border:1px solid #e3ded6} 738@media (min-width:1024px){.tws-comp-card--side{display:flex}} 739.tws-comp-card--side .tws-comp-pic{aspect-ratio:16/10} 740#app#app .tws-comp-card--side .tws-comp-title{color:#fff;font-size:20px} 741#app#app .tws-comp-card--side .tws-comp-worth{color:#ff6b73} 742.tws-comp-card--side .tws-comp-row{flex-direction:column;align-items:stretch;gap:8px} 743#app#app .tws-comp-card--side .tws-comp-free{color:#bbb;text-align:center} 744@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}} 745.tws-comp-label{border-bottom:3px solid #000;margin-bottom:20px}
746.tws-comp-label span{display:inline-block;background:#000;color:#fff;font-weight:600;font-size:16px;line-height:1.5;padding:10px 20px} 747.tws-comp-grid{display:grid;gap:20px;grid-template-columns:repeat(4,minmax(0,1fr))} 748.tws-comp-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))} 749.tws-comp-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))} 750.tws-comp-band--one .tws-comp-grid{display:block} 751.tws-comp-band--one .tws-comp-card--wide{margin:0} 752.tws-comp-foot{display:flex;justify-content:space-between;gap:16px;margin-top:14px;font-size:13px;line-height:1.4} 753#app#app .tws-comp-foot a{color:#231F20;font-weight:700;text-decoration:underline} 754@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}} 755.tws-comp-short{margin-top:20px} 756@media (min-width:1024px){.tws-comp-short{margin-top:40px}} 757.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} 758.tws-comp-strip{margin-bottom:0} 759/* the standard page */ 760.tws-cp{color:#231F20} 761.tws-cp-hero{position:relative;margin:0;aspect-ratio:1.88/1;overflow:hidden;background:#fff;border:1px solid #e3ded6} 762.tws-cp-hero img,.tws-cp-hero picture{position:absolute;inset:0;width:100% !important;height:100% !important;object-fit:cover;display:block} 763.tws-cp-hero .tws-comp-flag{top:20px;font-size:13px;padding:8px 12px} 764.tws-cp-hero .tws-comp-pill{left:16px;bottom:16px;font-size:13px;padding:8px 12px} 765.tws-cp-hero .tws-comp-pill--dark{position:absolute} 766.tws-cp-hero--gal{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:6px;overflow:visible;background:transparent;border:0} 767.tws-cp-main{position:relative;margin:0;overflow:hidden;background:#fff;border:1px solid #e3ded6} 768.tws-cp-side{position:relative;min-height:0} 769.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} 770.tws-cp-thumbs::-webkit-scrollbar{display:none} 771/* Side pictures (1.8.0): 4:3, three slots showing, the same size however many there are. The 772 picture block is 1.88:1, so one slot is (width / 1.88 - 12px) / 3 tall and 4/3 of that wide. 773 Width comes from the .tws-cp container. Fewer than three leaves a gap at the bottom. */ 774.tws-cp{container-type:inline-size} 775@media (min-width:768px){@supports (width:1cqw){ 776 .tws-cp-hero--gal{grid-template-columns:minmax(0,1fr) calc((100cqw / 1.88 - 12px) / 3 * 4 / 3)} 777}} 778button.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} 779button.tws-cp-thumb:hover img,button.tws-cp-thumb:focus-visible img{transform:scale(1.04)} 780button.tws-cp-thumb img{transition:transform .25s ease} 781button.tws-cp-thumb:focus-visible{outline:3px solid #C8102E;outline-offset:-3px} 782button.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} 783button.tws-cp-arrow svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round} 784button.tws-cp-arrow:hover{background:#C8102E} 785button.tws-cp-arrow[disabled]{opacity:0;pointer-events:none} 786.tws-cp-arrow--up{top:8px}.tws-cp-arrow--down{bottom:8px} 787@media (max-width:767px){ 788 .tws-cp-hero--gal{aspect-ratio:auto;grid-template-columns:1fr} 789 .tws-cp-main{aspect-ratio:1.88/1} 790 .tws-cp-side{position:static} 791 .tws-cp-thumbs{position:static;flex-direction:row;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory} 792 button.tws-cp-thumb{flex:0 0 calc((100% - 12px) / 3);aspect-ratio:4/3} 793 button.tws-cp-arrow{display:none} 794} 795.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} 796.tws-cp--closed .tws-cp-hero img{filter:grayscale(.85) brightness(.9)} 797.tws-cp-top{display:grid;grid-template-columns:1.1fr 1fr;border:1px solid #e3ded6;border-top:0;margin-bottom:0} 798.tws-cp-top--one{grid-template-columns:1fr;border-top:1px solid #e3ded6;margin:0 0 30px} 799.tws-cp-prize{padding:26px 28px} 800.tws-cp-lbl{font:700 11px/1 'Open Sans',Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#767676;margin:0 0 10px} 801#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} 802.tws-cp .tws-cp-intro p{font-size:15px;line-height:1.55;margin:0 0 12px} 803.tws-cp .tws-cp-intro:last-child p:last-child{margin-bottom:0} 804.tws-cp .tws-cp-intro + ul.tws-cp-bul{margin-top:16px} 805.tws-cp ul.tws-cp-bul{list-style:none;padding:0;margin:0} 806.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} 807.tws-cp ul.tws-cp-bul li::before{content:"";position:absolute;
807left:0;top:5px;width:12px;height:12px;background:#C8102E;clip-path:polygon(0 50%,40% 90%,100% 10%,85% 0,40% 65%,12% 38%)} 808.tws-cp-enter{background:#231F20;color:#fff;padding:26px 28px;display:flex;flex-direction:column;gap:12px} 809#app#app .tws-cp-boxh{font-family:'Montserrat', Arial, sans-serif !important;font-weight:700 !important;font-size:22px;line-height:1.25} 810.tws-cp-enter .tws-cp-boxh{color:#fff} 811#app#app .tws-cp-boxp{font-size:14px;line-height:1.5} 812.tws-cp-enter .tws-cp-boxp{color:#d6d3cd} 813.tws-cp-count{display:flex;gap:8px} 814.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} 815#app#app .tws-cp-count b{display:block;font-family:'Montserrat', Arial, sans-serif !important;font-size:22px;line-height:1.1;color:#fff} 816.tws-cp-entry{margin:26px 0 0;scroll-margin-top:180px} 817.tws-cp-entry .tws-cp-h{margin-top:0 !important} 818.tws-cp-form{background:#fff;color:#231F20;border:1px solid #e3ded6;border-top:4px solid #C8102E;padding:8px 16px;min-height:120px} 819.tws-cp-form .tws-embed{margin:0 !important} 820.tws-cp-form iframe{width:100% !important;border:0;display:block} 821.tws-comp-btn--big{width:100%;min-height:50px !important;font-size:14px !important} 822#app#app .tws-cp-fine{font-size:12px;color:#aaa;text-align:center} 823.tws-cp-closedbox{background:#f5f3ef;padding:26px 28px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;border-left:1px solid #e3ded6} 824.tws-cp-top--one .tws-cp-closedbox{border-left:0} 825.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} 826.tws-cp-sponsor{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #e3ded6;font-size:13px;color:#767676} 827.tws-cp-sponsor img{max-height:44px;width:auto} 828.tws-cp-sponsor b{font:800 16px/1 'Open Sans',Arial,sans-serif;color:#231F20;border:2px solid #231F20;padding:6px 10px} 829.tws-cp-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:26px 0} 830.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} 831.tws-cp-stats div{border-top:4px solid #C8102E;background:#f5f3ef;padding:16px;text-align:center} 832#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} 833.tws-cp-stats span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#767676} 834.tws-cp-story{margin-top:26px;border:1px solid #e3ded6;background:#fff} 835#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} 836.tws-cp-storyb{padding:4px 24px 20px} 837.tws-cp-storyb > section:first-child{margin-top:16px !important} 838.tws-cp-storyb .container{padding-left:0 !important;padding-right:0 !important;max-width:none !important} 839.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} 840.tws-cp-storyb > section:last-child .container > :last-child > :last-child{margin-bottom:0 !important} 841#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} 842.tws-cp-gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0} 843.tws-cp-gal--2{grid-template-columns:repeat(2,minmax(0,1fr))}.tws-cp-gal--1{grid-template-columns:1fr} 844.tws-cp-gal figure{margin:0} 845.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} 846/* 1.8.0: Show the whole picture (Layout tab) â product shots on white are not cropped */
847.tws-cp--whole button.tws-cp-thumb img,.tws-cp--whole .tws-cp-gal img{object-fit:contain !important;background:#fff} 848/* 1.8.9: the main picture always fills its box, proportions kept, centred. Whatever does not fit 849 is cropped evenly from the top and bottom or the sides; never any white space. */ 850.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} 851.tws-cp-gal figcaption{font-size:12px;color:#767676;margin-top:6px} 852.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} 853.tws-cp-det dt{font-weight:700}.tws-cp-det dd{margin:0} 854.tws-cp-faq{border-top:1px solid #e3ded6} 855.tws-cp-faq details{border-bottom:1px solid #e3ded6} 856.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} 857.tws-cp-faq summary::-webkit-details-marker{display:none} 858.tws-cp-faq summary::after{content:"+";color:#C8102E;font-size:20px;line-height:1} 859.tws-cp-faq details[open] summary::after{content:"\2212"} 860.tws-cp-faq details div{padding:0 0 16px;font-size:15px;line-height:1.55} 861.tws-cp-tc{font-size:13px;color:#767676;margin-top:16px} 862#app#app .tws-cp-tc a{color:#231F20;text-decoration:underline} 863.tws-cp-more{margin:26px 0} 864.tws-cp-more .tws-comp-card{border:1px solid #e3ded6} 865@media (max-width:1023px){ 866 .tws-cp-top{grid-template-columns:1fr} 867 .tws-cp-enter{order:-1} 868 .tws-cp-closedbox{border-left:0;order:-1} 869 .tws-cp-stats{grid-template-columns:repeat(2,minmax(0,1fr))} 870 #app#app .tws-cp-worth{font-size:36px} 871 .tws-cp-gal{grid-template-columns:repeat(2,minmax(0,1fr))} 872 .tws-cp-gal figure:nth-child(n+3){display:none} 873} 874/* pop-up and bar */ 875.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} 876.tws-comp-toast.is-in{transform:none;opacity:1} 877.tws-comp-toast[hidden],.tws-comp-bar[hidden]{display:none !important} 878.tws-comp-toast img{width:120px;object-fit:cover;display:block;flex:none} 879.tws-comp-tb{display:flex;flex-direction:column;gap:6px;padding:14px 38px 14px 14px} 880.tws-comp-tk{font:700 10px/1 'Open Sans',Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#C8102E} 881#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} 882.tws-comp-tm{font:700 11px/1.3 'Open Sans',Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em;color:#C8102E} 883#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} 884.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} 885.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} 886.tws-comp-bar img{width:52px;height:52px;object-fit:cover;flex:none} 887#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} 888.tws-comp-bt small{display:block;font:600 11px/1.3 'Open Sans',Arial,sans-serif;color:#ff8a90;margin-top:3px} 889#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} 890.tws-comp-bar .tws-comp-x{top:50%;transform:translateY(-50%);color:#bbb} 891@media (min-width:768px){.tws-comp-bar{display:none !important}} 892@media (max-width:767px){.tws-comp-toast{left:16px;bottom:16px}.tws-comp-toast img{width:90px}} 893</style> 894<style id="tws-comp-listing-css">li:has(.tws-comp-listing-line--open)>div.relative::after{content:"Enter now \203A";position:absolute;
894left: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> 895<style id="tws-comp-closed-css">.tws-comp-closed{color:#C8102E;font-weight:700;text-transform:uppercase;letter-spacing:.02em}</style> 896<link rel="icon" href="/app/uploads/sites/2/2025/01/cropped-GJ-Favicons2-32x32.png" sizes="32x32" /> 897<link rel="icon" href="/app/uploads/sites/2/2025/01/cropped-GJ-Favicons2-192x192.png" sizes="192x192" /> 898<link rel="apple-touch-icon" href="/app/uploads/sites/2/2025/01/cropped-GJ-Favicons2-180x180.png" /> 899<meta name="msapplication-TileImage" content="/app/uploads/sites/2/2025/01/cropped-GJ-Favicons2-270x270.png" /> 900<style id="tws-nav-subcategories"> 901@media only screen and (min-width: 1024px) { 902 #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 { 903 position: relative !important; 904 } 905 906 #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 { 907 position: absolute !important; 908 top: var(--tws-subs-top, 100%) !important; 909 left: 0 !important; 910 right: auto !important; 911 width: -moz-max-content !important; 912 width: max-content !important; 913 min-width: 100% !important; 914 max-width: 320px !important; 915 padding: 0 !important; 916 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18) !important; 917 } 918 919 /* An item close to the right hand edge opens leftwards instead. */ 920 #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 { 921 left: auto !important; 922 right: 0 !important; 923 } 924 925 #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 { 926 display: block !important; 927 float: none !important; 928 clear: both !important; 929 width: 100% !important; 930 margin: 0 !important; 931 padding: 0 !important; 932 border: 0 !important; 933 } 934 935 #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 { 936 display: block !important; 937 width: auto !important; 938 margin: 0 !important; 939 padding: var(--tws-subs-pad-y, 11px) var(--tws-subs-pad-x, 20px) !important; 940 line-height: var(--tws-subs-line-height, 1.6) !important; 941 border: 0 !important; 942 white-space: nowrap !important; 943 text-decoration: none !important; 944 } 945 946 #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, 947 #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, 948 #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 { 949 text-decoration: none !important; 950 } 951} 952</style> 953 <style id="wp-custom-css"> 954 /* TWS CUSTOM STYLING - current stylesheet (v2_20). Single live version; Per-version changelog follows below. */ 955 956/* 1_2 â Mobile advert block. */ 957/* 1_3 â Boxed content frames and buttons. */ 958/* 1_4 â Cleaner AdRotate blocks. */ 959/* 1_5 â Embedded video player styling. */ 960/* 1_6 â Venue listing. */ 961/* 1_7 â Reduced portrait image height. */ 962/* 1_8 â Dual portrait and landscape images. */ 963/* 1_9 â Fixed the swiper mobile media query (missing px), a stray token in the venue-entry margin, and merged duplicate image rules. */
964/* 2_0 â .tws-price-box (RRP and link box) in the theme primary colour, replacing hard-coded red inline styles. */ 965/* 2_1 â Three more dual-figure shapes: .tws-dual-square, .tws-dual-portrait-short, .tws-dual-portrait-tall. Existing pairs unchanged. */ 966/* 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. */ 967/* 2_3 â .tws-faq-question now also works on a body subheading via .single-post, not only inside .tws-faq-section. */ 968/* 2_4 â .tws-product-grid: card grid for kit-bag, gift and best-of roundups. -2 default, -3, -4; one column on mobile. */ 969/* 2_5 â .tws-cta: full-width promo, cover image one side, heading, copy and button the other. Image never cropped. */ 970/* 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). */ 971/* 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. */ 972/* 2_8 â .tws-strand-break: divider between round-up strands. Sets its own border, because the Tailwind reset makes a plain hr invisible. */ 973/* 2_9 â .tws-product-grid-1: one card per row, image left and copy right, so a single product fills the content width. */ 974/* 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. */ 975/* 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. */ 976/* 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. */ 977/* 2_13 â Comments and changelog condensed throughout. No CSS rule changed, so this is byte-different from 2_12 but visually identical. */ 978/* 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. */ 979/* 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. */ 980/* 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. */ 981/* 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. */ 982/* 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. */ 983/* 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). */ 984/* 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. */ 985 986 987.primary-colour { color: rgb(var(--color-primary)); } 988.secondary-colour { color: rgb(var(--color-secondary)); } 989 990/* Close gap between nav buttons */ 991#mega-menu-primary_navigation { gap: 0px; } 992 993/* Make titles and standfirsts full width on desktop */ 994main > section:first-child .lg\:w-\[calc\(70\%\-20px\)\] { width: 100% !important; } 995 996/* Adjustments to H1 headings */ 997 998/* Desktop */ 999.single-post h1 { font-size: 45px !important; } 1000 1001/* Mobile */ 1002@media (max-width:600px) { 1003 .single-post h1 { font-size: 28px !important; line-height: 1.15 !important; } 1004} 1005 1006/* Adjustments to H2 headings */ 1007.single-post h2 { font-size: 26px !important; padding-top: 15px; padding-bottom: 10px; margin: 0px !important; } 1008 1009/* Mobile */ 1010@media (max-width:600px) { 1011 .single-post h2 { font-size: 24px !important; line-height: 1.2 !important; } 1012} 1013 1014/* Homepage Slider */ 1015.swiper-wrapper h2 { font-size: 44px!important; line-height:1.15em!important; padding-bottom: 10px;} 1016.swiper-wrapper p { font-size: 20px!important; line-height:1.3em!important; padding-bottom: 10px;} 1017 1018@media (max-width:1024px) { 1019.swiper-wrapper h2 { font-size: 34px!important; line-height:1.15em!important; } 1020.swiper-wrapper p { font-size: 18px!important; line-height:1.2em!important; } 1021} 1022 1023@media (max-width:600px) { 1024.swiper-wrapper h2 { font-size: 28px!important; line-height:1.15em; } 1025.swiper-wrapper p { font-size: 15px!important; line-height:1.2em; } 1026} 1027 1028/* START - AdRotate stacked ad block */ 1029.adrotate-ad-container, .a-single.a-4, .ad-stack, .billboard-and-leaderboard-ad { background: #ffffff!important; } 1030.a-single.a-4, .ad-stack { display: flex !important; flex-direction: column !important; align-items: center !important; gap: 0 !important; width: 100% !important; } 1031.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; } 1032 1033/* Reserve the top banner slots' height BEFORE Google fills them - CLS fix, 28 Aug 2026. 1034 The rule above zeroes min-height, so the page painted with the article at the top and 1035 then dropped 50-220px on mobile when the Billboard and Leaderboard arrived (PageSpeed 1036 measured 0.188 of a 0.3 CLS on the main element, Sporting Gun article, mobile). Reserving the 1037 tallest creative each slot can serve (GAM mapping: mobile 320x100 / 320x50, desktop 1038 billboard 970x250, leaderboard 970x90 / 728x90) means a filled slot moves nothing. 1039 Cost: a blank strip on the occasions a slot goes unfilled. min-height, not height, so 1040 an oversized creative still shows. Keep these numbers in step with the GAM size 1041 mapping. Do NOT display:none an empty slot - Google treats a hidden slot as 1042 unviewable and may stop filling it. */ 1043@media (max-width:1023px) { 1044 .a-single.a-4 .billboard-and-leaderboard-ad, 1045 .ad-stack .billboard-and-leaderboard-ad { min-height: 100px !important; } 1046} 1047@media (min-width:1024px) { 1048 .a-single.a-4 .billboard-and-leaderboard-ad:first-child, 1049 .ad-stack .billboard-and-leaderboard-ad:first-child { min-height: 250px !important; } 1050 .a-single.a-4 .billboard-and-leaderboard-ad + .billboard-and-leaderboard-ad, 1051 .ad-stack .billboard-and-leaderboard-ad + .billboard-and-leaderboard-ad { min-height: 90px !important; } 1052} 1053 1054/* Gap between the fixed nav and the page content - desktop, all templates. 1055 Measured, not hard-coded: the tws-header-height mu-plugin publishes the live header 1056 height as --tws-header-h, so one expression covers all four spacer variants (these 1057 were 150 / 114 / 160 / 124, each retuned per site). The var() fallback applies on 1058 first paint and if the script ever fails, so it is deliberately generous - too large 1059 shows a gap, too small hides content behind the nav. */ 1060@media (min-width:1024px) { 1061 .with-ad-and-cta, 1062 .with-ad-and-no-cta, 1063 .without-ad-and-has-cta, 1064 .without-ad-and-cta { margin-top: calc(var(--tws-header-h, 126px) + 32px) !important; } 1065 1066 /* Homepage hero: a 16px band rather than the article's +32px. Flush measured exactly 1067 right, but a full-bleed photo running to the nav edge reads as if it continues 1068 behind it. Scoped to body.home and the two ad-less variants only: on a homepage 1069 that does carry a top banner the spacer holds that advert, and flush would push it 1070 against the nav. Needs the measured value - the header differs per site (126px 1071 Airgun World, 118px ShootingUK) and a few pixels over shows as a white line. */ 1072 body.home .without-ad-and-has-cta, 1073 body.home .without-ad-and-cta { margin-top: calc(var(--tws-header-h, 126px) + 16px) !important; } 1074 1075 /* NOTE: the hero sidebar's own padding-top: 40px, set inline in 1076 blocks/hero-banner-carousel/render.blade.php, is deliberately LEFT ALONE. Zeroed 1077 on 28 July and reverted the same day - the "Latest news" heading needs that air. */ 1078} 1079 1080/* Spacing between stacked banner ads - applied only BETWEEN TWO FILLED SLOTS. 1081 Google prints every slot wrapper whether it fills or not; an unfilled one renders at 1082 height 0 but is still a flex item, so it used to collect the 10px gap plus a 10px 1083 margin and leave 20px of empty space (seen on Trout & Salmon). The gap is now 0 and 1084 the 20px comes from :has(iframe) on both sides. Deliberately NOT display:none on an 1085 empty slot - Google treats a hidden slot as unviewable and may then never fill it. 1086 Self-correcting: if a slot fills late, :has() re-evaluates. */ 1087.adrotate-ad-container .ad-stack, .ad-stack, .a-single.a-4 { gap: 0 !important; } 1088.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; } 1089.ad-stack .billboard-and-leaderboard-ad:has(iframe) ~ .billboard-and-leaderboard-ad:has(iframe), 1090.a-single.a-4 .billboard-and-leaderboard-ad:has(iframe) ~ .billboard-and-leaderboard-ad:has(iframe) { margin-top: 20px !important; } 1091 1092/* Gap between the fixed nav and the top banner ads - mobile, all templates. 1093 Was 125px + 20px padding = 145px effective, less than the mobile header (about 152px 1094 when the CTA strapline wraps to two lines), so the ad sat behind the nav. padding-top 1095 removed so margin-top is the true offset. Now measured via --tws-header-h from the 1096 tws-header-height mu-plugin, which removes the three-line-strapline risk; the +18px 1097 is the clear air Lee settled on against a measured 153px header. */ 1098@media (max-width:1023px) { 1099 .with-ad-and-cta, 1100 .with-ad-and-no-cta, 1101 .without-ad-and-has-cta, 1102 .without-ad-and-cta { margin-top: calc(var(--tws-header-h, 152px) + 18px) !important; padding-top: 0 !important; } 1103 .with-ad-and-cta, .with-ad-and-no-cta { background: transparent !important; background-color: transparent !important; } 1104 .with-ad-and-cta > section, .with-ad-and-no-cta > section { margin-top: 0 !important; background: transparent !important; background-color: transparent !important; } 1105 /* Homepage hero, mobile: the carousel pulls itself up 15px (mt-[-15px] on #hero-banner in 1106 blocks/hero-banner-carousel/render.blade.php), so the +18px above left a 3px white line 1107 under the nav, most visible on the black ShootingUK header. +14px lets the photo tuck 1108 1px under the nav so a rounded header height can never open a hairline. Same scoping 1109 as the desktop body.home rule - ad-less variants only. */ 1110 body.home .without-ad-and-has-cta, 1111 body.home .without-ad-and-cta { margin-top: calc(var(--tws-header-h, 152px) + 14px) !important; } 1112 /* gap handled by the :has(iframe) rule above so unfilled slots add nothing */ 1113 .a-single.a-4, .ad-stack { display: flex !important; flex-direction: column !important; align-items: center !important; gap: 0 !important; width: 100% !important; } 1114} 1115.adrotate-ad-container { margin-top: 0 !important; margin-bottom: 10px !important; padding-top: 0 !important; } 1116.adrotate-ad-container section { margin-top: 10px !important; } 1117 1118/* Sidebar advert slots - kill the gap left by an unfilled slot. 1119 Each sidebar advert is wrapped in a div classed "flex justify-center items-center 1120 mb-[40px]" (single-post, single-video-post and blocks/paginated-posts Blade files). 1121 That 40px is unconditional, so every GPT slot that does not fill still contributes it
1122 and the gaps go uneven. Filled slots now get 30px, unfilled ones nothing. The class 1123 name stays mb-[40px] because that is what Blade prints; only the value is overridden. 1124 That class combination is used nowhere else. As above, the slot is never hidden. */ 1125.flex.justify-center.items-center.mb-\[40px\] { 1126 margin-bottom: 0 !important; 1127} 1128.flex.justify-center.items-center.mb-\[40px\]:has(iframe), 1129.flex.justify-center.items-center.mb-\[40px\]:has(img) { 1130 margin-bottom: 30px !important; 1131} 1132 1133/* 1px grey outline around every rendered advert - white creatives were disappearing 1134 into the page. outline rather than border on purpose: it sits outside the box and 1135 takes no layout space, so a fixed-size creative is neither nudged nor clipped. Drawn 1136 on the rendered iframe or image only, so an unfilled slot shows nothing rather than a 1137 grey line. The google_ads_iframe_ prefix catches every Google-served advert; the two 1138 wrapper selectors catch direct AdRotate image banners. */ 1139[id^="google_ads_iframe_"] iframe, 1140.billboard-and-leaderboard-ad img, 1141.flex.justify-center.items-center.mb-\[40px\] img { 1142 outline: 1px solid #cccccc !important; 1143} 1144 1145/* END - AdRotate stacked ad block */ 1146 1147/* Embedded Video styling - making the player larger */ 1148/* Make embedded video full width of its column */ 1149.wysiwyg-content .inline-video-block-container { width: 100% !important; } 1150 1151/* Default / LARGE video - 80% of the column */ 1152.wysiwyg-content .inline-video-block-container iframe { 1153 width: 80% !important; 1154 height: auto !important; 1155 aspect-ratio: 16 / 9 !important; 1156 max-width: none !important; 1157 display: block !important; 1158 margin: 0 auto 20px !important; 1159} 1160 1161/* SMALL video - 50% of the column */ 1162.wysiwyg-content .inline-video-block-container.video-small iframe { 1163 width: 50% !important; 1164} 1165 1166/* Override the fixed mobile sizing too */ 1167@media (max-width:500px) { 1168 .wysiwyg-content .inline-video-block-container iframe { 1169 width: 100% !important; 1170 height: auto !important; 1171 aspect-ratio: 16 / 9 !important; 1172 margin: 0 auto 10px !important; 1173 } 1174} 1175/* Yoast breadcrumbs - tighten the gap below the top banner ads, desktop only. 1176 The space above comes from the block-container Blade component, which we cannot reach 1177 without a rebuild: lg:mt-[40px] on desktop but only mt-[20px] on mobile, so a shared 1178 -20px cancelled the mobile gap and pulled the breadcrumbs into the bottom ad. */ 1179.yoast-breadcrumbs { margin-top: 0px !important; margin-bottom: 25px !important; } 1180@media (min-width:1024px) { 1181 /* Desktop: the section carries lg:mt-[40px], so -20px halves the gap. Scoped to 1182 pages that actually carry a header advert - on an ad-less page the spacer div is 1183 empty, so the section margin collapses into it rather than adding to it, and the 1184 -20px left the breadcrumbs flush against the nav (seen on airgun-world.com). */ 1185 .min-h-screen:has(> .with-ad-and-cta) .yoast-breadcrumbs, 1186 .min-h-screen:has(> .with-ad-and-no-cta) .yoast-breadcrumbs { margin-top: -20px !important; } 1187} 1188 1189/* Reduce spacing beneath author/share block */ 1190.single-post .wysiwyg-content section.relative.lg\:mt-\[40px\].mt-\[20px\] { margin-top: 10px !important; } 1191 1192/* Change Leading of 1 to 1.2 for better readability of 'Excerpt' field */ 1193.leading-\[1\] { line-height: 1.2 !important; } 1194 1195/* Increase size of author name */ 1196.author-details span:first-child { font-size: 15px !important; } 1197 1198/* Sentence case for sidebar blocks - target the specific h3 */ 1199h3.block.w-full.md\:w-fit.bg-black.text-white { text-transform: lowercase; } 1200h3.block.w-full.md\:w-fit.bg-black.text-white::first-letter { text-transform: uppercase; } 1201 1202/* Reduce spacing between Gutenberg/editorial blocks */ 1203.spu-content, .wysiwyg-content { display: flex; flex-direction: column; gap: 12px; } 1204 1205/* Reduce height of portrait and landscape images */ 1206.wp-caption.alignnone { 1207 text-align: center; /* centres the image and caption in the text column */ 1208} 1209 1210.wp-caption.alignnone img { 1211 max-height: 70vh !important; /* cap relative to viewport height */ 1212 width: auto !important; /* width follows the capped height, preserving ratio */ 1213 height: auto !important; /* lets landscape images behave normally */ 1214 max-width: 100% !important; /* never wider than the text column */ 1215 margin-inline: auto; /* centres within the figure */ 1216 display: block; 1217} 1218 1219/* ============================================================ 1220 tws-dual-figure 1221 Two images side by side on desktop, each with its own caption, 1222 stacked on mobile. The default height suits portrait; add 1223 tws-dual-landscape to the wrapper for a shorter 4:3 box. 1224 ============================================================ */ 1225 1226.tws-dual-figure { 1227 display: flex; 1228 gap: 30px; 1229 align-items: self-start; /* tops aligned; equal-height handled per image */ 1230 margin: 40px 0; 1231} 1232
1233/* Beat the theme's figure.wp-caption{display:flex;flex-direction:column; 1234 max-width:100%} and its 40px figure margins */ 1235.tws-dual-figure figure.wp-caption { 1236 flex: 1 1 0 !important; /* two equal columns */ 1237 max-width: 50% !important; 1238 margin: 0 !important; 1239 display: flex !important; 1240 flex-direction: column !important; 1241} 1242 1243.tws-dual-figure figure.wp-caption img { 1244 width: 100% !important; 1245 height: 60vh !important; /* shared height equalises the pair (portrait default) */ 1246 object-fit: cover !important; /* fill the box, crop gracefully */ 1247 object-position: center !important; 1248 max-width: 100% !important; 1249} 1250 1251/* Landscape variant: two 4:3 images side by side, shorter box. 1252 Add tws-dual-landscape to the wrapper alongside tws-dual-figure. */ 1253.tws-dual-figure.tws-dual-landscape figure.wp-caption img { 1254 height: 36vh !important; /* tune to taste; suits 4:3 in two columns */ 1255} 1256 1257/* ---- v2_1 side-by-side variants ---------------------------- 1258 One modifier on the wrapper alongside tws-dual-figure, each a 1259 fixed ratio so the two always match height: 1260 .tws-dual-square two square (1:1) 1261 .tws-dual-portrait-short two shorter portrait (4:5) 1262 .tws-dual-portrait-tall two taller portrait (2:3) 1263 .tws-dual-landscape two landscape (4:3), above 1264 With no modifier the original 60vh portrait box applies, so 1265 existing posts are untouched. */ 1266 1267.tws-dual-figure.tws-dual-square figure.wp-caption img { 1268 height: auto !important; 1269 aspect-ratio: 1 / 1 !important; /* square */ 1270} 1271 1272.tws-dual-figure.tws-dual-portrait-short figure.wp-caption img { 1273 height: auto !important; 1274 aspect-ratio: 4 / 5 !important; /* shorter portrait */ 1275} 1276 1277.tws-dual-figure.tws-dual-portrait-tall figure.wp-caption img { 1278 height: auto !important; 1279 aspect-ratio: 2 / 3 !important; /* taller portrait */ 1280} 1281/* ---- end v2_1 side-by-side variants --------------------------------------- */ 1282 1283/* Stack vertically on mobile */ 1284@media (max-width: 767px) { 1285 .tws-dual-figure { 1286 flex-direction: column; 1287 gap: 0; 1288 } 1289 .tws-dual-figure figure.wp-caption { 1290 max-width: 100% !important; 1291 margin: 0 0 20px 0 !important; 1292 } 1293 .tws-dual-figure figure.wp-caption img { 1294 height: auto !important; /* natural height when stacked */ 1295 max-height: 80vh !important; 1296 object-fit: contain !important; 1297 } 1298 /* Let the v2_1 variants fall back to natural height when stacked */ 1299 .tws-dual-figure.tws-dual-square figure.wp-caption img, 1300 .tws-dual-figure.tws-dual-portrait-short figure.wp-caption img, 1301 .tws-dual-figure.tws-dual-portrait-tall figure.wp-caption img { 1302 aspect-ratio: auto !important; 1303 } 1304} 1305 1306/* START - TWS triple figure (3 square images) */ 1307.tws-triple-figure { 1308 display: flex; 1309 gap: 24px; 1310 align-items: flex-start; 1311 margin: 40px 0; 1312} 1313 1314.tws-triple-figure figure.wp-caption { 1315 flex: 1 1 0 !important; 1316 max-width: calc(33.333% - 16px) !important; 1317 margin: 0 !important; 1318 display: flex !important; 1319 flex-direction: column !important; 1320} 1321 1322.tws-triple-figure figure.wp-caption img { 1323 width: 100% !important; 1324 aspect-ratio: 1 / 1 !important; 1325 object-fit: cover !important; 1326 object-position: center !important; 1327 height: auto !important; 1328 max-width: 100% !important; 1329} 1330 1331/* Stack vertically on mobile */ 1332@media (max-width:767px) { 1333 .tws-triple-figure { 1334 flex-direction: column; 1335 gap: 0; 1336 } 1337 .tws-triple-figure figure.wp-caption { 1338 max-width: 100% !important; 1339 margin: 0 0 20px 0 !important; 1340 } 1341 .tws-triple-figure figure.wp-caption img { 1342 aspect-ratio: 1 / 1 !important; 1343 } 1344} 1345/* END - TWS triple figure */ 1346 1347/* ============================================================ 1348 START - TWS photo grid (tws-photo-grid) v2_12 1349 An even grid for a SET of photographs. Every tile in one grid 1350 shares one shape, so mixed originals sit on a clean grid with 1351 no ragged heights. The wrapper takes a column count and a shape: 1352 columns tws-photo-grid-4 (default), -3, -2 1353 shape tws-photo-square 1:1 (default) 1354 tws-photo-landscape 4:3 1355 tws-photo-portrait-short 4:5 1356 tws-photo-portrait-tall 2:3 1357 Same four shape names as tws-dual-figure. Every count drops to 1358 two across below 1024px; the shape never changes. Class-based 1359 because inline grid is stripped from post content on save. 1360 Supersedes tws-triple-figure for photo sets. 1361 ============================================================ */ 1362 1363.tws-photo-grid { 1364 display: grid; 1365 grid-template-columns: repeat(4, 1fr); 1366 gap: 10px; 1367 margin: 34px 0; 1368} 1369.tws-photo-grid.tws-photo-grid-4 { grid-template-columns: repeat(4, 1fr); } 1370.tws-photo-grid.tws-photo-grid-3 { grid-template-columns: repeat(3, 1fr); } 1371.tws-photo-grid.tws-photo-grid-2 { grid-template-columns: repeat(2, 1fr); } 1372 1373/* Beat the theme's figure.wp-caption rules and its 40px figure margins */ 1374.tws-photo-grid figure.wp-caption { 1375 margin: 0 !important; 1376 padding: 0 !important; 1377 width: 100% !important; 1378 max-width: 100% !important; 1379 display: flex !important; 1380 flex-direction: column !important; 1381 align-items: stretch !important; 1382 justify-content: flex-start !important; /* v2_14 - see below */ 1383} 1384 1385/* v2_14. Each tile is a grid item and stretches to the height of the 1386 tallest tile in its row. The theme sets figure{justify-content:center}, 1387 which this component did not override, so the picture-and-caption stack 1388 was being centred in that stretched box: a tile with a one-line caption 1389 had its picture pushed down by half a caption line while a neighbour 1390 with two lines stayed put, and the row looked ragged. Starting the 1391 stack at the top puts every picture in a row on the same line, and 1392 every caption with it. */ 1393 1394.tws-photo-grid figure.wp-caption img { 1395 width: 100% !important; 1396 height: auto !important; 1397 max-width: 100% !important; 1398 max-height: none !important; 1399 aspect-ratio: 1 / 1 !important; /* square is the default shape */ 1400 object-fit: cover !important; 1401 object-position: center !important; 1402 display: block !important; 1403 margin: 0 !important; 1404 background: #f0f0f0; 1405} 1406 1407/* ---- shape modifiers. Pick the shape the set already is: a 1408 portrait set in a portrait grid loses almost nothing, the same 1409 set in a landscape grid loses more than half the frame. ---- */ 1410.tws-photo-grid.tws-photo-square figure.wp-caption img { aspect-ratio: 1 / 1 !important; } 1411.tws-photo-grid.tws-photo-landscape figure.wp-caption img { aspect-ratio: 4 / 3 !important; } 1412.tws-photo-grid.tws-photo-portrait-short figure.wp-caption img { aspect-ratio: 4 / 5 !important; } 1413.tws-photo-grid.tws-photo-portrait-tall figure.wp-caption img { aspect-ratio: 2 / 3 !important; } 1414/* ---- end shape modifiers --------------------------------- */ 1415
1416/* Tile captions are optional and sit smaller than a body 1417 caption, because a full-size caption under a quarter-width 1418 tile reads heavier than the picture it belongs to. */ 1419.tws-photo-grid figure.wp-caption figcaption.wp-caption-text { 1420 font-size: 0.72rem !important; 1421 line-height: 1.35em !important; 1422 padding: 6px 0 0 0 !important; 1423 margin: 0 !important; 1424} 1425 1426/* One collective credit line under the whole grid, for a set 1427 that shares a photographer and needs no tile captions. */ 1428.tws-photo-grid-credit { 1429 font-size: 0.8rem !important; 1430 font-style: italic; 1431 color: #555555; 1432 text-align: right; 1433 margin: -24px 0 34px !important; 1434} 1435 1436/* Tablet and mobile: two across whatever the desktop count. 1437 The shape is deliberately NOT changed here - a portrait 1438 grid stays portrait on a phone. */ 1439@media (max-width: 1023px) { 1440 .tws-photo-grid, 1441 .tws-photo-grid.tws-photo-grid-4, 1442 .tws-photo-grid.tws-photo-grid-3, 1443 .tws-photo-grid.tws-photo-grid-2 { 1444 grid-template-columns: repeat(2, 1fr); 1445 gap: 8px; 1446 } 1447} 1448@media (max-width: 600px) { 1449 .tws-photo-grid { margin: 24px 0; } 1450 .tws-photo-grid figure.wp-caption figcaption.wp-caption-text { font-size: 0.68rem !important; } 1451} 1452/* END - tws-photo-grid */ 1453 1454/* Image caption fix */ 1455.wp-block-image figure, figure.wp-block-image { display: flex !important; flex-direction: column !important; align-items: center; } 1456.wp-block-image figcaption { margin-top: 0.4rem; font-size: 0.9rem ; } 1457figure.wp-block-image { margin: 1rem 0 !important; } 1458figcaption.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; } 1459figure.wp-caption { align-items: center !important; } 1460 1461/* Ensure caption spans full width beneath image */ 1462.wp-block-image figcaption { width: 100% !important; text-align: center; } 1463 1464/* Related articles styling */ 1465.related-articles p { padding: 7px 0; border-bottom: 1px solid #f0f0f0; line-height: 1.6; } 1466.related-articles p:last-child { border-bottom: none; } 1467.related-articles a { text-decoration: none; color: inherit; } 1468.related-articles a:hover { text-decoration: underline; } 1469.related-articles strong { font-weight: 600; } 1470 1471/* FAQ section â title heading */ 1472.tws-faq-section h2.tws-faq-title { font-size: 22px; } 1473 1474/* FAQ section â individual questions */ 1475/* FAQ questions, and body question-led subheadings reusing the same look (v2_3) */ 1476.tws-faq-section .tws-faq-question, 1477.single-post .tws-faq-question { font-size: 20px; color: rgb(var(--color-primary)); } 1478 1479/* Review table styling */ 1480.tws-table-wrapper { margin-bottom: 20px } 1481@media (max-width:600px) { 1482 .tws-table-wrapper { overflow-x: auto } 1483} 1484 1485/* Specification Table */ 1486.tws-spec-table { width: 100%; border-collapse: collapse } 1487.tws-spec-table th { background-color: rgb(var(--color-primary)); color: #fff; padding: 5px; text-align: left; border-bottom: 1px solid #ddd } 1488.tws-spec-table td { padding: 5px; text-align: left; border-bottom: 1px solid #ddd } 1489.tws-spec-table tbody tr:nth-child(odd) { background-color: #f5f5f5 } 1490.tws-spec-table tbody tr:nth-child(even) { background-color: #e9e9e9 } 1491 1492/* Recipe meta strip â prep/cook times, serves, difficulty */ 1493.tws-recipe-meta { background-color: #f9f9f9; border-left: 4px solid rgb(var(--color-primary)); padding: 16px 20px; margin: 24px 0; } 1494.tws-recipe-meta ul { display: flex; flex-wrap: wrap; gap: 18px 32px; margin: 0; padding: 0; list-style: none !important; } 1495.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; } 1496.tws-recipe-meta ul li::before, .tws-recipe-meta ul li::marker { content: none !important; } 1497.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; } 1498 1499/* Stack vertically on small screens */ 1500@media (max-width:600px) { 1501 .tws-recipe-meta ul { flex-direction: column; gap: 14px; } 1502 .tws-recipe-meta ul li strong { display: inline; font-size: 0.95em; text-transform: none; letter-spacing: 0; color: #d13b2e; margin-bottom: 0; } 1503 .tws-recipe-meta ul li strong::after { content: " "; } 1504} 1505 1506/* Dividers above sections */ 1507.tws-recipe-method, .tws-faq-section, .related-articles { border-top: 1px solid #dddddd; padding-top: 28px; margin-top: 32px; } 1508.tws-recipe-method ~ h2 { margin-top: 0; padding-top: 0; } 1509.tws-recipe-method ~ h2::before { content: ''; display: block; border-top: 1px solid #e0e0e0; margin-top: 48px; margin-bottom: 40px; } 1510 1511/* Recipe Chef block */ 1512.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); } 1513.tws-chef-bio__image { flex: 0 0 300px; width: 300px; height: 300px; overflow: hidden; border-radius: 2px; } 1514.tws-chef-bio__image img { width: 100%; height: 100%; object-fit: cover; display: block; } 1515.tws-chef-bio__content { flex: 1; } 1516.tws-chef-bio__content h2 { margin-top: 0; margin-bottom: 12px; font-size: 1.1em; } 1517.tws-chef-bio__content p { margin-top: 0; margin-bottom: 12px; font-size: 0.95em; line-height: 1.6; } 1518.tws-chef-bio__content p:last-child { margin-bottom: 0; } 1519@media (max-width:640px) { 1520 .tws-chef-bio { flex-direction: column; } 1521 .tws-chef-bio__image { flex: 0 0 auto; width: 100%; height: 200px; } 1522} 1523
1524/* START - Father's Day Gifts*/ 1525#fathers-day-gifts { font-family: 'Georgia', 'Times New Roman', serif; margin: 2rem 0; } 1526#fathers-day-gifts .fdg-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; } 1527 1528/* Card */ 1529#fathers-day-gifts .fdg-card { display: flex; flex-direction: column; border: 2px solid #ddd; background: #fff; } 1530 1531/* Image area */ 1532#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; } 1533#fathers-day-gifts .fdg-img-wrap img { max-width: 100%; max-height: 260px; width: auto; height: auto; object-fit: contain; display: block; } 1534 1535/* Card body */ 1536#fathers-day-gifts .fdg-body { padding: 18px; display: flex; flex-direction: column; flex: 1; } 1537#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; } 1538#fathers-day-gifts .fdg-price { font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-weight: bold; color: #1a1a1a; margin: 0 0 10px; } 1539#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; } 1540 1541/* CTA button */ 1542#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; } 1543#fathers-day-gifts .fdg-cta:hover { background: rgb(var(--color-secondary)); color: #fff; text-decoration: none; } 1544 1545/* Responsive Grid settings */ 1546@media (max-width:960px) { 1547 #fathers-day-gifts .fdg-grid { grid-template-columns: repeat(2, 1fr); } 1548} 1549@media (max-width:600px) { 1550 #fathers-day-gifts .fdg-grid { grid-template-columns: 1fr; } 1551} 1552 1553/* Increase leading of p tags inside Father's Day CTA block */ 1554.full-width-text-image-cta p { line-height: 1.5 } 1555 1556/* END - Father's Day Gifts*/ 1557 1558/* Content frames and buttons */ 1559.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; } 1560.tws-frame:first-of-type { margin-top: 40px; } 1561.tws-frame h2 { margin-top: 0; } 1562 1563/* Embed frame - the tws-frame border with no padding and no margin, so an embed 1564 (iframe, oEmbed wrapper, form, map, player) sits flush to it. Embeds carry their 1565 own spacing. Use .tws-frame for normal copy blocks. */ 1566.tws-embed-frame { border: 1px solid rgb(var(--color-primary)); border-left: 10px solid rgb(var(--color-primary)); padding: 0; margin: 0; } 1567.tws-embed-frame > * { margin-top: 0; margin-bottom: 0; } 1568.tws-embed-frame iframe { display: block; max-width: 100%; } 1569 1570/* v2_15, rescoped in v2_17. A video embedded INSIDE a tws-frame, 1571 alongside copy - a tying demonstration under a fly dressing, say. 1572 WordPress oEmbeds a bare URL at a fixed 500x281, which sits small and 1573 hard left in a frame that is half as wide again. Pin it to the frame 1574 width at 16:9 instead. This is tws-frame only; tws-embed-frame above 1575 is for a frame that holds nothing but the embed, and the dual-video 1576 component sets its own. 1577 v2_17: this was written as a bare .tws-frame iframe, which caught 1578 EVERY iframe in a frame, not only videos. A form embed (Dotdigital) 1579 is a tall iframe that sets its own height, and height:auto with a 1580 16:9 ratio cropped it to a letterbox. Matched on video hosts and on 1581 the WordPress video embed wrapper instead, so a form, a map or a 1582 third party widget in a frame is left alone. */ 1583.tws-frame iframe[src*="youtube.com"], 1584.tws-frame iframe[src*="youtube-nocookie.com"], 1585.tws-frame iframe[src*="youtu.be"], 1586.tws-frame iframe[src*="vimeo.com"], 1587.tws-frame iframe[src*="dailymotion.com"], 1588.tws-frame iframe[src*="player.twitch.tv"], 1589.tws-frame .wp-block-embed.is-type-video iframe, 1590.tws-frame .inline-video-block-container iframe { 1591 width: 100% !important; 1592 height: auto !important; 1593 aspect-ratio: 16 / 9 !important; 1594 max-width: 100% !important; 1595 display: block; 1596} 1597 1598.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; } 1599.tws-btn:hover { background-color: rgb(var(--color-secondary)); color: #ffffff; } 1600 1601/* Button row - sits two or more .tws-btn side by side with even spacing, 1602 wraps neatly on narrow screens. Wrap the buttons in a div with class tws-btn-row */ 1603.tws-btn-row { display: flex; flex-wrap: wrap; gap: 15px; align-items: center; padding-top:10px;} 1604.tws-btn-row .tws-btn { margin-top: 0; } 1605 1606/* Product price and link box (buying guides / product reviews) */ 1607.tws-price-box { background-color: #f9f9f9; border-left: 4px solid rgb(var(--color-primary)); padding: 15px 20px; margin-top: 20px; } 1608.tws-price-box p { margin: 0; font-size: 1em; font-weight: normal; line-height: 1.5; } 1609.tws-price-box .tws-price-rrp { color: #333333; margin-bottom: 5px; } 1610.tws-price-box .tws-price-link { color: rgb(var(--color-primary)); font-weight: bold; text-decoration: none; } 1611.tws-price-box .tws-price-link:hover { color: rgb(var(--color-secondary)); text-decoration: none; } 1612 1613/* START - TWS Venue listing */ 1614 1615/* Listing wrapper */ 1616.tws-venue-listing { width: 100%; } 1617 1618/* Single entry - boxed, mirrors .tws-frame */ 1619.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; } 1620 1621/* County / region label */ 1622.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; } 1623 1624/* Venue name (H2) */ 1625.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; } 1626 1627/* Body copy - inherits the site's default paragraph styling, 1628 only spacing is set here */ 1629.tws-venue-listing .tws-venue-entry p { margin: 0 0 12px; } 1630 1631/* Contact line (phone) */ 1632.tws-venue-listing .tws-venue-contact { margin-bottom: 14px; } 1633 1634/* Website button - mirrors .tws-btn */ 1635.tws-venue-listing .tws-venue-button { margin: 0; } 1636.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; } 1637.tws-venue-listing .tws-venue-button-link:hover { background-color: rgb(var(--color-secondary)); color: #ffffff; text-decoration: none; } 1638 1639/* Entry inner layout - text 65% / image 35% */ 1640.tws-venue-listing .tws-venue-inner { display: flex; flex-direction: row; gap: 24px; align-items: flex-start; } 1641.tws-venue-listing .tws-venue-content { flex: 0 0 65%; min-width: 0; } 1642.tws-venue-listing .tws-venue-image { flex: 0 0 calc(35% - 24px); } 1643.tws-venue-listing .tws-venue-image img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; object-position: center; } 1644 1645/* Mobile - image above text */ 1646@media (max-width:600px) { 1647 .tws-venue-listing h2.tws-venue-name { font-size: 22px !important; } 1648 .tws-venue-listing .tws-venue-entry { padding: 22px 22px 20px; margin-bottom: 18px; } 1649 .tws-venue-listing .tws-venue-inner { flex-direction: column; gap: 16px; } 1650 .tws-venue-listing .tws-venue-image { flex: none; width: 100%; } 1651 .tws-venue-listing .tws-venue-image img { aspect-ratio: 16 / 9; } 1652} 1653 1654/* END - TWS Venue listing */ 1655 1656 1657/* ============================================================
1658 tws-dual-video (v2_2) 1659 Two video embeds side by side, e.g. portrait YouTube Shorts. 1660 Add tws-dual-video to a tws-dual-figure wrapper whose two 1661 figure.wp-caption blocks each hold a bare YouTube URL, which 1662 WordPress oEmbeds. Needs a class because inline display:flex is 1663 stripped from post content on save. 1664 ============================================================ */ 1665 1666.tws-dual-figure.tws-dual-video { 1667 gap: 16px; 1668 max-width: 760px; 1669 margin-left: auto; 1670 margin-right: auto; 1671 justify-content: center; 1672 align-items: flex-start; 1673} 1674 1675.tws-dual-figure.tws-dual-video figure.wp-caption { 1676 max-width: 340px !important; 1677 text-align: center; 1678} 1679 1680/* label sits above its video */ 1681.tws-dual-figure.tws-dual-video figure.wp-caption p { margin: 0 0 8px 0 !important; } 1682 1683/* fill each column at a portrait (9:16) ratio, which suits Shorts */ 1684.tws-dual-figure.tws-dual-video figure.wp-caption iframe { 1685 width: 100% !important; 1686 height: auto !important; 1687 aspect-ratio: 9 / 16 !important; 1688 max-width: 100% !important; 1689 display: block; 1690} 1691 1692/* keep the two shorts side by side on mobile too, just smaller */ 1693@media (max-width: 767px) { 1694 .tws-dual-figure.tws-dual-video { flex-direction: row !important; gap: 10px; } 1695 .tws-dual-figure.tws-dual-video figure.wp-caption { max-width: 50% !important; margin: 0 !important; } 1696} 1697 1698/* END - TWS dual video */ 1699 1700 1701/* ============================================================ 1702 tws-product-grid (v2_4) 1703 Card grid for kit-bag, gift and best-of roundups. Each card is 1704 a square product image on white, the name, a price and retailer 1705 link, and a short description. Add -2 (default look), -3 or -4 1706 for the desktop column count; all collapse to one column on 1707 mobile. Class-based because inline grid/flex is stripped on save. 1708 ============================================================ */ 1709 1710.tws-product-grid { 1711 display: grid; 1712 grid-template-columns: repeat(2, minmax(0, 1fr)); 1713 gap: 24px; 1714 margin: 32px 0; 1715} 1716.tws-product-grid.tws-product-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } 1717.tws-product-grid.tws-product-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } 1718 1719/* v2_20 â a card never forces its column wider than its share of the grid. 1720 The in-article promo boxes are inserted after the Nth paragraph and count the 1721 paragraphs inside the tws- boxes, so they can land inside a card, frame or panel. 1722 The tws-promo-placement mu-plugin moves each one to sit between the boxes: in a 1723 product grid it becomes a full-width row after the row it landed in. Until it 1724 is moved (or if the plugin is missing) a promo inside a box stays hidden, so the 1725 page never shows it squashed or pushes the grid under the sidebar. */ 1726.tws-product-card { min-width: 0; } 1727.tws-product-grid > .tws-bss, 1728.tws-product-grid > .tws-promo, 1729.tws-product-grid > .tws-nlad, 1730.tws-product-grid > .tws-promo-band { grid-column: 1 / -1; margin: 0 !important; } 1731.tws-product-card .tws-bss, .tws-product-card .tws-promo, .tws-product-card .tws-nlad, 1732.tws-frame .tws-bss, .tws-frame .tws-promo, .tws-frame .tws-nlad, 1733.tws-panel .tws-bss, .tws-panel .tws-promo, .tws-panel .tws-nlad, 1734.tws-faq-section .tws-bss, .tws-faq-section .tws-promo, .tws-faq-section .tws-nlad, 1735.related-articles .tws-bss, .related-articles .tws-promo, .related-articles .tws-nlad { display: none !important; } 1736 1737.tws-product-card { 1738 display: flex; 1739 flex-direction: column; 1740 border: 1px solid #dddddd;
1741 border-top: 4px solid rgb(var(--color-primary)); 1742 background: #ffffff; 1743} 1744 1745/* Square image area, product sits on white with a little breathing room */ 1746.tws-product-image { 1747 width: 100%; 1748 aspect-ratio: 1 / 1; 1749 display: flex; 1750 align-items: center; 1751 justify-content: center; 1752 background: #ffffff; 1753 padding: 18px; 1754 box-sizing: border-box; 1755 border-bottom: 1px solid #eeeeee; 1756} 1757.tws-product-image img { 1758 width: 100%; 1759 height: 100%; 1760 object-fit: contain; 1761 display: block; 1762 margin: 0 !important; 1763 max-height: 100% !important; 1764} 1765 1766.tws-product-body { 1767 padding: 18px 20px 22px; 1768 display: flex; 1769 flex-direction: column; 1770 flex: 1; 1771} 1772.tws-product-title { 1773 font-size: 19px; 1774 font-weight: 700 !important; 1775 color: rgb(var(--color-primary)); 1776 margin: 0 0 6px !important; 1777 line-height: 1.3; 1778} 1779.tws-product-meta { 1780 font-size: 14px; 1781 margin: 0 0 12px !important; 1782 line-height: 1.45; 1783} 1784.tws-product-price { font-weight: 700; color: #1a1a1a; } 1785.tws-product-link { 1786 color: rgb(var(--color-primary)); 1787 font-weight: 700; 1788 text-decoration: none; 1789} 1790.tws-product-link:hover { color: rgb(var(--color-secondary)); text-decoration: underline; } 1791.tws-product-desc { 1792 font-size: 16px; 1793 color: #333333; 1794 line-height: 1.6; 1795 margin: 0 !important; 1796} 1797 1798/* One column on mobile, whatever the desktop column count */ 1799@media (max-width: 767px) { 1800 .tws-product-grid, 1801 .tws-product-grid.tws-product-grid-3, 1802 .tws-product-grid.tws-product-grid-4 { 1803 grid-template-columns: 1fr; 1804 gap: 20px; 1805 } 1806} 1807/* END - tws-product-grid */ 1808
1809/* START - TWS full-width call-to-action (cover image + text + button) */ 1810/* Full-width promo: cover image one side, heading, copy and button the other. 1811 The image is shown whole, never cropped, and the panel fills any space around it. 1812 Brand primary = button, secondary = panel. Class-based, inline styles stripped. */ 1813.tws-cta { display: flex; flex-direction: row; align-items: stretch; width: 100%; margin: 0 0 34px; background: rgb(var(--color-secondary)); } 1814.tws-cta .tws-cta-media { flex: 0 0 50%; display: flex; align-items: center; justify-content: center; padding: 26px; box-sizing: border-box; } 1815.tws-cta .tws-cta-media img { display: block; width: auto; height: auto; max-width: 100%; max-height: 460px; } 1816.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; } 1817.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; } 1818.tws-cta .tws-cta-body p { margin: 0 0 16px; color: #ffffff; } 1819.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; } 1820.tws-cta .tws-cta-btn:hover { background: #ffffff; color: rgb(var(--color-primary)); text-decoration: none; } 1821 1822@media (max-width: 767px) { 1823 .tws-cta { flex-direction: column; } 1824 .tws-cta .tws-cta-media, .tws-cta .tws-cta-body { flex: none; width: 100%; } 1825 .tws-cta .tws-cta-media { padding: 22px 22px 0; } 1826 .tws-cta .tws-cta-media img { max-height: none; } 1827 .tws-cta .tws-cta-body { padding: 26px 24px 30px; } 1828 .tws-cta .tws-cta-heading { font-size: 25px; } 1829} 1830/* END - TWS full-width call-to-action */ 1831 1832 1833/* ============================================================ 1834 tws-panel (v2_6) 1835 Tinted feature panel with a solid header bar, for a magazine 1836 "viewpoint" or sidebar box. Bar = brand PRIMARY with white text, 1837 body = a soft tint of that same primary. 1838 Markup: div.tws-panel holding p.tws-panel-name (the reversed-out 1839 name band) then div.tws-panel-body, which opens with an 1840 h3.tws-panel-title and an optional p.tws-panel-standfirst. 1841 Class-based, inline styles stripped from post content on save. 1842 ============================================================ */ 1843/* Inner text rules carry an #app prefix to out-rank the theme's own 1844 "#app h3 { font-family: 'Open Sans' !important }": that selector has an ID, so a 1845 classes-only rule loses even with !important. #app wraps content on every brand. */ 1846.tws-panel { background: rgba(var(--color-primary), 0.08); margin: 40px 0; } 1847#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; } 1848.tws-panel-body { padding: 22px 26px 24px; } 1849#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)); } 1850#app .tws-panel .tws-panel-standfirst { margin: 0 0 16px !important; font-size: 1.1em !important; font-weight: 600 !important; line-height: 1.4; } 1851.tws-panel-body > *:last-child { margin-bottom: 0 !important; } 1852 1853@media (max-width: 600px) { 1854 #app .tws-panel .tws-panel-name { font-size: 13px !important; padding: 8px 20px !important; } 1855 #app .tws-panel .tws-panel-title { font-size: 21px !important; } 1856 .tws-panel-body { padding: 18px 20px 20px; } 1857} 1858/* END - tws-panel */ 1859 1860 1861/* ============================================================ 1862 tws-panel-media (v2_16) 1863 A cut-out product picture on a tws-panel. The picture sits to 1864 the right of the copy and breaks out above and below the box, 1865 so a prize or product promo reads like a magazine page rather 1866 than a plain aside. A modifier on .tws-panel, so every existing 1867 panel is untouched. 1868 Markup: the usual .tws-panel > p.tws-panel-name + div.tws-panel-body, 1869 with a div.tws-panel-image holding ONE transparent PNG added 1870 after the body. Class-based, because inline styles are stripped 1871 from post content on save. 1872 The picture box is pinned top and bottom with a fixed overhang 1873 and takes its width from aspect-ratio, so the break-out is the 1874 same depth whatever the copy does. max-width stops a tall panel 1875 pushing the picture into the text; where that cap bites, the 1876 picture simply sits inside the box instead, which is what 1877 happens between 768px and about 900px. 1878 ============================================================ */ 1879.tws-panel.tws-panel-media { position: relative; margin: 80px 0; } 1880.tws-panel-media .tws-panel-body { padding-right: 46%; } 1881.tws-panel-media .tws-panel-image { position: absolute; right: 14px; top: -46px; bottom: -46px; aspect-ratio: 1000 / 1117; max-width: 44%; pointer-events: none; } 1882.tws-panel-media .tws-panel-image img { display: block; width: 100%; height: 100%; margin: 0; object-fit: contain; object-position: center; } 1883 1884/* Tablet: a narrower picture so the copy keeps a workable measure. */ 1885@media (max-width: 1024px) { 1886 .tws-panel.tws-panel-media { margin: 56px 0; } 1887 .tws-panel-media .tws-panel-body { padding-right: 42%; } 1888 .tws-panel-media .tws-panel-image { right: 10px; top: -30px; bottom: -30px; max-width: 40%; } 1889} 1890 1891/* Mobile: side by side stops working, so the picture drops under 1892 the copy and breaks out of the foot of the box only. */ 1893@media (max-width: 767px) { 1894 .tws-panel.tws-panel-media { margin: 40px 0 66px; }
1895 .tws-panel-media .tws-panel-body { padding-right: 26px; padding-bottom: 10px; } 1896 .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; } 1897 .tws-panel-media .tws-panel-image img { object-position: center bottom; } 1898} 1899/* END - tws-panel-media */ 1900 1901 1902/* ============================================================ 1903 tws-strand-break (v2_8) 1904 A thematic break between the self-contained strands of a 1905 round-up article, where unrelated short stories share one page 1906 (the weekly Shooting Times Junior package). Not the automatic 1907 dividers above the recipe method, FAQ and related articles - 1908 those components draw their own. 1909 It must declare its own border: the theme's Tailwind reset puts 1910 "border: 0 solid" on every element, so an unstyled hr is 1911 invisible, and it zeroes the hr margin too. 1912 Markup: hr.tws-strand-break on its own line above the strand h2. 1913 ============================================================ */ 1914.tws-strand-break { border: 0; border-top: 1px solid #dddddd; height: 0; margin: 44px 0 36px !important; } 1915 1916@media (max-width: 768px) { 1917 .tws-strand-break { margin: 32px 0 26px !important; } 1918} 1919/* END - tws-strand-break */ 1920 1921 1922/* ============================================================ 1923 HIGHLIGHTS TILES - flat tint removed, gradient at the bottom only 1924 Added 4 August 2026. Block: blocks/five-post-cards. 1925 The block hard-codes a 50 per cent black layer over the whole 1926 photo inside the inline background shorthand, alongside the 1927 per-card image URL, so no stylesheet can replace one without 1928 losing the other. Blending that layer with "lighten" cancels it 1929 exactly: black lightened against the photo is the photo. The 1930 second value, normal, stops the photo blending with the 1931 lightgray background colour, which would lift every dark area. 1932 background-blend-mode is not part of the background shorthand, 1933 so the inline style does not reset it and no template change is 1934 needed. 1935 ============================================================ */ 1936.five-post-cards .card-link div[style*="linear-gradient"] { background-blend-mode: lighten, normal; } 1937 1938/* Animated GIF cards take a different branch and get a separate black overlay */ 1939.five-post-cards .card-link .absolute.inset-0.bg-black { display: none; } 1940 1941/* Tint restored as a bottom-up gradient on the caption layer. The heading is a 1942 child of that layer, so it paints above its own background with no z-index. */ 1943.five-post-cards .card-link .absolute.items-end { 1944 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%); 1945} 1946 1947/* Safety net for a caption landing on a bright patch */ 1948.five-post-cards .card-link h3 { text-shadow: 0 1px 3px rgba(0,0,0,0.6); } 1949 1950/* Dial to taste: darker behind the text, raise 0.85 towards 0.95. Gradient 1951 reaches higher up the tile, raise the 60% stop. Hugs the base more, drop it. */ 1952/* END - Highlights tiles */ 1953 1954 1955/* ============================================================ 1956 tws-product-grid-1 (v2_9) 1957 One card per row, laid out horizontally on desktop so a section 1958 carrying a single product fills the content width instead of 1959 leaving an empty second column. Square image left at 50 per 1960 cent, copy beside it. Stacks to the normal vertical card on 1961 mobile. 1962 ============================================================ */ 1963 1964.tws-product-grid.tws-product-grid-1 { grid-template-columns: 1fr; } 1965 1966.tws-product-grid.tws-product-grid-1 .tws-product-card { flex-direction: row; align-items: stretch; } 1967 1968.tws-product-grid.tws-product-grid-1 .tws-product-image { 1969 width: 50%; 1970 max-width: none; 1971 flex: 0 0 auto; 1972 border-bottom: 0; 1973 border-right: 1px solid #eeeeee; 1974} 1975 1976.tws-product-grid.tws-product-grid-1 .tws-product-body { flex: 1 1 auto; justify-content: center; } 1977 1978@media (max-width: 767px) { 1979 .tws-product-grid.tws-product-grid-1 { grid-template-columns: 1fr; } 1980 .tws-product-grid.tws-product-grid-1 .tws-product-card { flex-direction: column; } 1981 .tws-product-grid.tws-product-grid-1 .tws-product-image { 1982 width: 100%; 1983 max-width: none; 1984 border-right: 0; 1985 border-bottom: 1px solid #eeeeee; 1986 } 1987} 1988/* END - tws-product-grid-1 */ 1989 1990 1991/* ============================================================ 1992 Boxed roundup refinements (v2_10, v2_11) 1993 A product grid last inside a tws-frame stacked its own bottom 1994 margin on the frame's bottom padding, leaving a deeper gap below 1995 the cards than at the sides; that margin is removed. 1996 1997 tws-frame-number is an opt-in span for the leading label on a 1998 numbered roundup heading, the "No. 1" in "No. 1 - Shotgun: ...". 1999 Set large, in the brand's secondary serif and primary colour. 2000 Nothing changes unless the class is added by hand. The #app 2001 prefix and !important are needed to beat the theme's own 2002 "#app h2 font-family Open Sans important" rule, the same problem
2003 tws-panel-title has. 2004 ============================================================ */ 2005 2006.tws-frame .tws-product-grid:last-child { margin-bottom: 0; } 2007 2008#app .tws-frame h2 .tws-frame-number, 2009.tws-frame h2 .tws-frame-number { 2010 font-family: 'EB Garamond', 'Georgia', 'Times New Roman', serif !important; 2011 font-size: 2.1em; 2012 font-weight: 700 !important; 2013 display: inline-block; 2014 line-height: 0.72; 2015 color: rgb(var(--color-primary)); 2016 vertical-align: -0.04em; 2017 margin-right: 4px; 2018 white-space: nowrap; 2019} 2020/* END - Boxed roundup refinements */ 2021 </style> 2022 <style id="tws-mobile-panel-styles"> 2023#mega-menu-wrap-primary_navigation #mega-menu-primary_navigation { 2024 --tws-mp-accent: rgb(var(--color-primary)); 2025 --tws-mp-accent: #906C3F;} 2026 2027/* The panel additions are mobile only. Injected into the mobile wrap alone, 2028 but hidden above the breakpoint as well in case a future template renders 2029 the mobile toggle at a wider width. */ 2030@media only screen and (min-width: 1024px) { 2031 li.tws-mp-item { display: none !important; } 2032} 2033 2034@media only screen and (max-width: 1023px) { 2035 2036 /* The empty row. 2037 app.css hides the link with visibility:hidden, which leaves the row in 2038 the layout at its full height plus its bottom border. This removes the 2039 list item instead. The item is already mega-hide-on-desktop, so nothing 2040 is lost above the breakpoint either. */ 2041 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.mega-social-media-links, 2042 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.social-media-links { 2043 display: none !important; 2044 } 2045 2046 /* Mega Menu pads the panel list 60px 25px. The 25px sides are what every 2047 row lines up against and are left alone. The 60px top was clearance for 2048 Mega Menu's own close button, which is no longer used, so it comes down 2049 and the whole panel starts higher. 2050 2051 Scoped to .tws-mp-built, added by the script once the rows are actually 2052 in place. If the script has not run, Mega Menu's close button is still 2053 the one on screen and it keeps the room it needs. */ 2054 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation.tws-mp-built { 2055 padding-top: 16px !important; 2056 } 2057 2058 /* Mega Menu's close button, retired in favour of ours. Adjacent sibling of 2059 the list, which is how Mega Menu's own stylesheet addresses it too. */ 2060 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation.tws-mp-built + button.mega-close { 2061 display: none !important; 2062 } 2063 2064 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation .tws-mp-close { 2065 /* Right edge lands on the right edge of the rows below, whatever the 2066 panel width, because the row it sits in shares their box. */ 2067 display: block; 2068 margin: 0 0 6px auto; 2069 padding: 0; 2070 width: 30px; 2071 height: 30px; 2072 border: 0; 2073 background: none; 2074 color: #fff; 2075 cursor: pointer; 2076 line-height: 0; 2077 } 2078 2079 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation .tws-mp-close svg { 2080 display: block; 2081 width: 100%; 2082 height: 100%; 2083 } 2084 2085 /* Sub menu links. 2086 Mega Menu's own generated CSS colours these #666, which is its flyout 2087 setting and reads fine on the desktop panel. On the black mobile panel it 2088 is too dim against the white top-level items. Matched with !important 2089 rather than by out-specifying a two-id, four-class selector, and scoped 2090 to this breakpoint so the desktop flyouts keep Mega Menu's own colour. */ 2091 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation ul.mega-sub-menu li.mega-menu-item > a.mega-menu-link { 2092 color: #fff !important; 2093 } 2094 2095 /* The header's own search button sits above the open panel, so its 2096 magnifier shows through over the menu. Hidden while the panel is open. 2097 The class is put on by script, which can tell this button apart from the 2098 burger and the close button; a selector cannot do that reliably here, 2099 because header.blade.php gives it only a responsive utility class. 2100 visibility rather than display, so nothing in the header reflows. */ 2101 html.tws-mp-open .tws-mp-header-search { 2102 visibility: hidden !important; 2103 pointer-events: none !important; 2104 } 2105 2106 /* The header's search icon ships at 18px against a burger that renders 2107 32 x 19, which left it looking undersized next to it. */ 2108 #header .tws-mp-header-search svg { 2109 width: 24px !important; 2110 height: 24px !important; 2111 } 2112 2113 /* An explicit colour for both mobile header icons, so the burger and the 2114 search icon always match rather than one being chased to the other. 2115 Set per site; blank on a site with a dark header, where the icons are 2116 white already and the runtime match below is the right behaviour. */ 2117 #header .mega-menu-mobile-toggle .mega-toggle-animated-inner, 2118 #header .mega-menu-mobile-toggle .mega-toggle-animated-inner::before, 2119 #header .mega-menu-mobile-toggle .mega-toggle-animated-inner::after { 2120 background-color: #b6b6b6 !important; 2121 } 2122 2123 #header .tws-mp-header-search svg [stroke]:not([stroke="none"]) { 2124 stroke: #b6b6b6 !important; 2125 } 2126 2127 #header .tws-mp-header-search svg [fill]:not([fill="none"]) { 2128 fill: #b6b6b6 !important; 2129 } 2130 2131 /* The header's own search icon carries #ffffff on the SVG's own 2132 attributes. That is right on Shooting UK, whose header is #231F20, and 2133 invisible on the six with a white header - the icon is not faint there, 2134 it is simply not drawn. 2135 2136 Recoloured to match that site's burger. The burger colour is a per-site 2137 Max Mega Menu theme setting and is not the same everywhere: five sites 2138 use #ddd and Trout & Salmon uses black, so it is read at runtime rather 2139 than written down. The script only adds this class where the header is 2140 light, so Shooting UK keeps its white icon. 2141 2142 Only attributes that already carry a colour are touched, so the circle 2143 keeps fill="none" and does not fill in. */ 2144 #header.tws-mp-match-search .tws-mp-header-search svg [stroke]:not([stroke="none"]) { 2145 stroke: var(--tws-mp-burger) !important; 2146 } 2147 2148 #header.tws-mp-match-search .tws-mp-header-search svg [fill]:not([fill="none"]) { 2149 fill: var(--tws-mp-burger) !important; 2150 } 2151 2152 /* Logo, when one is uploaded. Height driven, so any sensible file fits the 2153 row without being asked for at an exact size. 2154 Imagify is set to rewrap images in <picture> and moves the class up onto 2155 the wrapper, leaving the img bare, so both are sized here. Without this 2156 the logo would look right until the day a WebP version was generated. */ 2157 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation .tws-mp-logo, 2158 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation picture:has(> .tws-mp-logo) { 2159 display: block !important; 2160 height: 44px !important; 2161 width: auto !important; 2162 max-width: 220px !important; 2163 margin: 0 auto !important; 2164 object-fit: contain !important; 2165 } 2166 2167 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation picture:has(> .tws-mp-logo) > img, 2168 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation picture.tws-mp-logo > img { 2169 height: 100% !important; 2170 width: auto !important; 2171 max-width: 100% !important; 2172 object-fit: contain !important; 2173 } 2174 2175 /* Our own rows carry none of Mega Menu's item chrome. 2176 Deliberately no padding, margin or border shorthand here: the three row 2177 rules below set their own, and a shorthand at this specificity would 2178 overrule them. */ 2179 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.tws-mp-item { 2180 display: block !important; 2181 width: 100% !important; 2182 border: 0 none !important; 2183 background: none !important; 2184 list-style: none !important; 2185 } 2186 2187 #mega-menu-primary_navigation .tws-mp-item .screen-reader-text { 2188 position: absolute; width: 1px; height: 1px; overflow: hidden; 2189 clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; 2190 } 2191 2192 /* Title.
2193 Carries the same two-id prefix as the reset above. Without it the reset 2194 wins on specificity even though both are !important, and the padding 2195 silently never lands. */ 2196 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.tws-mp-item-head { 2197 /* Right inset clears Mega Menu's close button, which sits over the 2198 top right corner of the panel rather than in the flow. */ 2199 margin: 0 !important; 2200 /* No horizontal padding, so the title and any logo centre on the panel 2201 rather than sitting off to the left. No top padding either: the close 2202 button is the first thing in this row and the list's own 16px is the 2203 only gap wanted above it. 2204 2205 The 22px underneath is the gap between the logo and the search box. 2206 The search row adds 2px of its own, so the visible gap is 24px. */ 2207 padding: 0 0 22px !important; 2208 text-align: center; 2209 } 2210 2211 #mega-menu-primary_navigation .tws-mp-wordmark { 2212 display: block; 2213 color: #fff; 2214 font-size: 15px; 2215 font-weight: 800; 2216 line-height: 1.2; 2217 letter-spacing: .02em; 2218 text-transform: uppercase; 2219 } 2220 2221 /* A strapline is a quieter second line. Anything that is part of the 2222 magazine's name belongs in the title above, at the same size. */ 2223 #mega-menu-primary_navigation .tws-mp-strapline { 2224 display: block; 2225 margin-top: 4px; 2226 color: rgba(255, 255, 255, .62); 2227 font-size: 9.5px; 2228 font-weight: 400; 2229 letter-spacing: .15em; 2230 text-transform: uppercase; 2231 } 2232 2233 /* Search. 2234 Sticky so it stays reachable once the menu is scrolled. If the panel 2235 turns out to scroll the page rather than itself, this degrades to a 2236 normal block at the top, which is still an improvement on no search. */ 2237 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.tws-mp-item-search { 2238 margin: 0 !important; 2239 position: sticky !important; 2240 top: 0; 2241 z-index: 5; 2242 background: inherit !important; 2243 /* No horizontal padding. This row is a sibling of the menu rows, so 2244 zero here makes the search box exactly as wide as the rows above it 2245 and their dividing lines, whatever inset Mega Menu is applying to 2246 the list itself. */ 2247 padding: 2px 0 16px !important; 2248 } 2249 2250 #mega-menu-primary_navigation .tws-mp-search { 2251 display: flex; 2252 align-items: center; 2253 gap: 9px; 2254 margin: 0; 2255 padding: 9px 12px; 2256 border-radius: 4px; 2257 background: #fff; 2258 } 2259 2260 #mega-menu-primary_navigation .tws-mp-mag { 2261 flex: 0 0 auto; 2262 width: 17px; 2263 height: 17px; 2264 color: #555; 2265 } 2266 2267 #mega-menu-primary_navigation .tws-mp-search input[type="search"] { 2268 flex: 1 1 auto; 2269 min-width: 0; 2270 margin: 0; 2271 padding: 0; 2272 border: 0; 2273 background: none; 2274 box-shadow: none; 2275 color: #111; 2276 font-size: 15px; 2277 font-family: inherit; 2278 -webkit-appearance: none; 2279 appearance: none; 2280 } 2281 2282 #mega-menu-primary_navigation .tws-mp-search input[type="search"]:focus { 2283 outline: none; 2284 } 2285 2286 #mega-menu-primary_navigation .tws-mp-go { 2287 flex: 0 0 auto; 2288 padding: 6px 11px; 2289 border: 0; 2290 border-radius: 3px; 2291 background: var(--tws-mp-accent); 2292 color: #fff; 2293 font-size: 12px; 2294 font-weight: 700; 2295 letter-spacing: .03em; 2296 cursor: pointer; 2297 } 2298 2299 /* Footer */ 2300 #mega-menu-wrap-primary_navigation #mega-menu-primary_navigation > li.tws-mp-item-foot { 2301 /* Mega Menu puts margin: 0 10px 0 0 on every item, which would indent 2302 this row against the ones above it. Stated in full rather than as 2303 margin-top alone. */ 2304 margin: 26px 0 0 !important; 2305 /* Zero horizontal padding for the same reason as the search row: the 2306 subscribe button lines up with the menu rows above it. */ 2307 padding: 22px 0 30px !important; 2308 /* No rule across the top. The last menu item already draws a full width 2309 line, so a second, fainter one directly under it read as an artefact 2310 rather than as a divider. The 26px margin above does the separating. */ 2311 } 2312 2313 #mega-menu-primary_navigation .tws-mp-subscribe { 2314 display: block; 2315 padding: 14px 12px; 2316 border-radius: 3px; 2317 background: var(--tws-mp-accent); 2318 color: #fff !important; 2319 font-size: 15px; 2320 font-weight: 700; 2321 letter-spacing: .015em; 2322 line-height: 1.3; 2323 text-align: center; 2324 text-decoration: none; 2325 } 2326 2327 #mega-menu-primary_navigation .tws-mp-subscribe small { 2328 display: block; 2329 margin-top: 3px; 2330 opacity: .9; 2331 font-size: 11.5px; 2332 font-weight: 400; 2333 letter-spacing: .05em; 2334 text-transform: uppercase; 2335 } 2336 2337 #mega-menu-primary_navigation .tws-mp-follow { 2338 margin: 26px 0 14px; 2339 color: rgba(255, 255, 255, .56); 2340 font-size: 10.5px; 2341 letter-spacing: .14em; 2342 text-transform: uppercase; 2343 } 2344 2345 #mega-menu-primary_navigation .tws-mp-socials { 2346 display: flex; 2347 align-items: center; 2348 /* The "Follow us" label above is centred by the panel's own 2349 text-align, which a flex container ignores, so the row of icons has 2350 to be centred on its own axis. */ 2351 justify-content: center; 2352 gap: 26px; 2353 } 2354 2355 /* Plain marks on the black, no circles. The 44px tap target is kept by 2356 padding, so the icon can stay 25px without being hard to hit. */ 2357 #mega-menu-primary_navigation a.tws-mp-social { 2358 display: flex; 2359 align-items: center; 2360 justify-content: center; 2361 width: 25px; 2362 height: 25px; 2363 margin: -9px -9px; 2364 padding: 9px; 2365 border: 0 !important; 2366 box-sizing: content-box; 2367 line-height: 0; 2368 } 2369 2370 #mega-menu-primary_navigation a.tws-mp-social svg { 2371 width: 25px; 2372 height: 25px; 2373 fill: #fff; 2374 display: block; 2375 } 2376} 2377</style> 2378 <style id="tws-card-line-clamp"> 2379#app .latest-posts-block li > div > a > h3, 2380#app .latest-posts-block li > div > a > p { 2381 display: -webkit-box; 2382 -webkit-box-orient: vertical; 2383 -webkit-line-clamp: 3; 2384 overflow: hidden; 2385} 2386#app .latest-posts-block li > div > a > h3 { 2387 line-height: 1.2; 2388} 2389#app .latest-posts-block li > div > a > p { 2390 padding-top: 0; 2391 padding-bottom: 0; 2392 margin: 6px 0; 2393} 2394@media (max-width: 1023px) { 2395 #app .hero-banner-wrapper #hero-banner .carousel-overlay .container >
2395 h2 + p { 2396 display: -webkit-box; 2397 -webkit-box-orient: vertical; 2398 -webkit-line-clamp: 3; 2399 overflow: hidden; 2400 line-height: 1.2em !important; 2401 max-height: 3.6em !important; 2402 padding-bottom: 0 !important; 2403 margin-bottom: 30px; 2404 } 2405} 2406#app .latest-posts-block.tws-lc-measure li > div > a > h3, 2407#app .latest-posts-block.tws-lc-measure li > div > a > p { 2408 display: block !important; 2409 -webkit-line-clamp: none !important; 2410 overflow: visible !important; 2411 max-height: none !important; 2412} 2413</style> 2414 <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
2414ega-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 >
2414 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
24146%;}#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 >
2414 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;
2414left: 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;
2414cursor: 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
2414) rotate(-90deg);}/* Style changes to go into mega-menu.css */.wp-block {}</style> 2415<noscript><style id="rocket-lazyload-nojs-css">.rll-youtube-player, [data-lazy-src]{display:none !important;}</style></noscript> <style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style> 2416<noscript> 2417<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> 2418</noscript>
2419<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>
2419<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_oci wpr_image_dimensions wpr_desktop wpr_preload_links" /></head> 2420 2421 <body data-cmplz=1 class="page-template-default page page-id-197 wp-embed-responsive mega-menu-primary-navigation contact"> 2422 2423 <style> 2424 :root { 2425 --color-primary: 179, 135, 80; 2426 --color-secondary: 78, 73, 77; 2427 } 2428 </style> 2429 2430 2431 <div id="app"> 2432 <div class="h-0 overflow-visable flex justify-center items-center sticky top-[90vh] z-[99999]"> 2433 <span class="tws-ad-empty" hidden aria-hidden="true"></span><!-- Error, Advert is not available at this time due to schedule/geolocation restrictions! --> </div> 2434 2435<div class="min-h-screen"> 2436 <div class="mt-[198px] lg:mt-[205.99px] with-ad-and-cta"> 2437 <section class="relative lg:mt-[40px] mt-[20px]"> 2438 2439 2440 <div class="container "> 2441 <div class="flex justify-center items-center"> 2442 <div class="a-single a-4"><div class="ad-stack"> 2443 <!-- /22987101562/GDJ.com-Billboard --> 2444 <div class="billboard-and-leaderboard-ad" id='div-gpt-ad-1737908991816-0' > 2445
2445<script> 2446 window.addEventListener('gptScriptLoaded', function() { 2447 googletag.cmd.push(function() { 2448 googletag.display('div-gpt-ad-1737908991816-0'); 2449 }); 2450 }); 2451 </script>
2451 2452 </div> 2453 <!-- /22987101562/GDJ.com-Leaderboard --> 2454 <div class="billboard-and-leaderboard-ad" id='div-gpt-ad-1737909123474-0' > 2455
2455<script> 2456 window.addEventListener('gptScriptLoaded', function() { 2457 googletag.cmd.push(function() { 2458 googletag.display('div-gpt-ad-1737909123474-0'); 2459 }); 2460 }); 2461 </script>
2461 2462 </div> 2463</div></div> </div> 2464 </div> 2465 2466 2467</section> 2468 </div> 2469 2470 2471<style> 2472 .tws-header-logo, 2473 picture:has(> .tws-header-logo) { 2474 height: 40px; 2475 width: auto; 2476 max-width: 240px; 2477 object-fit: contain; 2478 display: block; 2479 } 2480 /* Imagify may rewrap the img in a <picture> and move the class up (CLAUDE.md 5.5) */ 2481 picture:has(> .tws-header-logo) > img, 2482 picture.tws-header-logo > img { 2483 height: 100% !important; 2484 width: auto !important; 2485 max-width: 100%; 2486 object-fit: contain; 2487 } 2488</style> 2489 2490 2491 2492<header id="header" 2493 class="header-group transition bg-white duration-500 fixed top-0 inset-x-0 w-full z-[9999] max-w-full" 2494 x-data="{ expanded: false }"> 2495 <section class="header-cta bg-primary text-center flex text-white items-center justify-center py-[10px] px-15px"> 2496 <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> 2497</span> 2498 </section> 2499 2500<!-- Desktop Header --> 2501<div class="nav-header-main hidden lg:flex flex-row justify-between items-center container py-[20px] relative min-h-[80px]"> 2502 2503 <!-- Logo + Tagline --> 2504 <div class="flex flex-row items-center gap-[15px] flex-shrink-0"> 2505 <a href="https://gundog-journal.com/" aria-label="Home"> 2506 <img fetchpriority="high" width="2000" height="558" class="tws-header-logo" src="/app/uploads/sites/2/2025/01/GJ-logo-BLACK-1.png" alt="" /> 2507 </a> 2508 </div> 2509 2510 <!-- Navigation Menu --> 2511 <div class="main-nav-bar flex justify-start grow px-[40px]"> 2512 <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"> 2513 <span class="mega-toggle-animated-box"> 2514 <span class="mega-toggle-animated-inner"></span> 2515 </span> 2516 </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-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/" 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">
2516Gear</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> 2517<ul class="mega-sub-menu"> 2518<li class='mega-menu-row' id='mega-menu-2873-0'> 2519 <ul class="mega-sub-menu"> 2520<li class='mega-menu-column mega-menu-columns-12-of-12' id='mega-menu-2873-0-0'> 2521 <ul class="mega-sub-menu"> 2522<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> 2523</li> </ul> 2524</li></ul> 2525</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> 2526<ul class="mega-sub-menu"> 2527<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> 2528</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> 2529 2530 <!-- Search & Buttons --> 2531 <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"> 2532 <div class="relative flex items-center header-search-wrapper"> 2533 <button @click="expanded = !expanded" class="z-50 relative"> 2534 <svg fill="none" height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"> 2535<circle cx="7" cy="7" r="6.25" stroke="#000000" stroke-width="1.5"/> 2536<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"/> 2537</svg> </button> 2538 </div> 2539 2540 <div class="twsnl-sub twsnl-sub--desktop" data-twsnl-sub> 2541 <button type="button" class="btn-normal btn-primary-hover-dark twsnl-sub-btn" aria-expanded="false" aria-haspopup="true" data-twsnl-sub-btn> 2542 <span>Subscribe</span> 2543 <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> 2544 </button> 2545 2546 <div class="twsnl-sub-dd" role="menu" hidden data-twsnl-sub-dd> 2547 <span class="twsnl-sub-caret" aria-hidden="true"></span> 2548 2549 <a class="twsnl-sub-row twsnl-sub-row--mag" href="https://shop.twsgroup.com/subscribe/gundog-journal" target="_blank" rel="noopener" role="menuitem"> 2550 <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> 2551 2552 <span class="twsnl-sub-text"> 2553 <span class="twsnl-sub-eyebrow">The magazine</span> 2554 <span class="twsnl-sub-title">
2554Subscribe to Gundog Journal</span> 2555 <span class="twsnl-sub-desc">Every issue delivered to your door, plus the digital back issue library</span> 2556 <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> 2557 </span> 2558 </a> 2559 2560 <a class="twsnl-sub-row twsnl-sub-row--news" href="/newsletter/" role="menuitem"> 2561 <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> 2562 <span class="twsnl-sub-text"> 2563 <span class="twsnl-sub-title">Subscribe to our newsletter</span> 2564 <span class="twsnl-sub-desc">Free monthly email, unsubscribe whenever you like</span> 2565 </span>
2566 <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> 2567 </div> 2568 </div> 2569 2570 2571 </div> 2572 2573</div> 2574 2575<!-- Desktop Search Bar (appears below header when expanded) --> 2576<div class="desktop-search-dropdown hidden lg:block absolute top-full left-0 right-0 bg-white shadow-lg z-40" 2577 x-show="expanded" 2578 x-transition:enter="transition ease-out duration-300" 2579 x-transition:enter-start="opacity-0 transform -translate-y-2" 2580 x-transition:enter-end="opacity-100 transform translate-y-0" 2581 x-transition:leave="transition ease-in duration-200" 2582 x-transition:leave-start="opacity-100 transform translate-y-0" 2583 x-transition:leave-end="opacity-0 transform -translate-y-2" 2584 x-collapse> 2585 <div class="container py-[20px]"> 2586 <div class="header-search search-wrapper desktop-header-search"> 2587 <div class="tws-is-panel" id="tws-is-1" data-tws-is> 2588 <div class="tws-is-box"> 2589 <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> 2590 <label class="screen-reader-text" for="tws-is-1-q">Search</label> 2591 <input id="tws-is-1-q" class="tws-is-input" type="search" autocomplete="off" 2592 placeholder="Search Gundog Journalâ¦" 2593 aria-label="Search Gundog Journal"> 2594 <button type="button" class="tws-is-clear" aria-label="Clear search" hidden>×</button> 2595 </div> 2596 <div class="tws-is-body" role="region" aria-live="polite"></div> 2597 </div> </div> 2598 </div> 2599</div> 2600 2601<!-- Mobile Header --> 2602<div class="nav-header-main flex lg:hidden flex-row justify-between items-center container py-[20px] relative"> 2603 2604 <!-- Mobile Menu Toggle (Left) --> 2605 <div class="flex items-center z-10"> 2606 <!-- The mega menu will automatically generate its mobile toggle button here --> 2607 <div class="mega-menu-mobile-toggle"> 2608 <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"> 2609 <span class="mega-toggle-animated-box"> 2610 <span class="mega-toggle-animated-inner"></span> 2611 </span> 2612 </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-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/" 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">
2612Gear</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> 2613<ul class="mega-sub-menu"> 2614<li class='mega-menu-row' id='mega-menu-2873-0'> 2615 <ul class="mega-sub-menu"> 2616<li class='mega-menu-column mega-menu-columns-12-of-12' id='mega-menu-2873-0-0'> 2617 <ul class="mega-sub-menu"> 2618<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> 2619</li> </ul> 2620</li></ul> 2621</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> 2622<ul class="mega-sub-menu"> 2623<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> 2624</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> 2625 </div> 2626 2627 <!-- Logo (Center) --> 2628 <div class="flex flex-row items-center gap-[15px] absolute left-1/2 transform -translate-x-1/2"> 2629 <a href="https://gundog-journal.com/" aria-label="Home"> 2630 <img width="2000" height="558" class="tws-header-logo" src="/app/uploads/sites/2/2025/01/GJ-logo-BLACK-1.png" alt="" /> 2631 </a> 2632 </div> 2633 2634 <!-- Search (Right) --> 2635 <div class="flex items-center z-10"> 2636 <button @click="expanded = !expanded" class="lg:hidden"> 2637 <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> 2638<circle cx="7" cy="7" r="6.25" stroke="#ffffff" stroke-width="1.5"/> 2639<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"/> 2640</svg> </button> 2641 </div> 2642 2643</div> 2644 2645 2646<!-- Mobile CTA Buttons --> 2647<div class="nav-header-main flex lg:hidden justify-evenly container align-center pb-[15px] lg:pb-[0px]"> 2648 <div class="twsnl-sub twsnl-sub--mobile" data-twsnl-sub> 2649 <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> 2650 <span>Subscribe</span> 2651 <svg class="twsnl-sub-chev" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false">
2651<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> 2652 </button> 2653 2654 <div class="twsnl-sub-dd" role="menu" hidden data-twsnl-sub-dd> 2655 <span class="twsnl-sub-caret" aria-hidden="true"></span> 2656 2657 <a class="twsnl-sub-row twsnl-sub-row--mag" href="https://shop.twsgroup.com/subscribe/gundog-journal" target="_blank" rel="noopener" role="menuitem"> 2658 <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> 2659 2660 <span class="twsnl-sub-text"> 2661 <span class="twsnl-sub-eyebrow">The magazine</span> 2662 <span class="twsnl-sub-title">
2662Subscribe to Gundog Journal</span> 2663 <span class="twsnl-sub-desc">Every issue delivered to your door, plus the digital back issue library</span> 2664 <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> 2665 </span> 2666 </a> 2667 2668 <a class="twsnl-sub-row twsnl-sub-row--news" href="/newsletter/" role="menuitem"> 2669 <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> 2670 <span class="twsnl-sub-text"> 2671 <span class="twsnl-sub-title">Subscribe to our newsletter</span> 2672 <span class="twsnl-sub-desc">Free monthly email, unsubscribe whenever you like</span> 2673 </span>
2674 <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> 2675 </div> 2676 </div> 2677 2678 </div> 2679 2680<!-- Mobile Search Bar (appears below header when expanded) --> 2681<div class="mobile-search-dropdown lg:hidden bg-white shadow-lg" 2682 x-show="expanded" 2683 x-transition:enter="transition ease-out duration-300" 2684 x-transition:enter-start="opacity-0 transform -translate-y-2" 2685 x-transition:enter-end="opacity-100 transform translate-y-0" 2686 x-transition:leave="transition ease-in duration-200" 2687 x-transition:leave-start="opacity-100 transform translate-y-0" 2688 x-transition:leave-end="opacity-0 transform -translate-y-2" 2689 x-collapse> 2690 <div class="header-search search-wrapper mobile-header-search px-[15px] py-[15px]"> 2691 <div class="tws-is-panel" id="tws-is-2" data-tws-is> 2692 <div class="tws-is-box"> 2693 <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> 2694 <label class="screen-reader-text" for="tws-is-2-q">Search</label> 2695 <input id="tws-is-2-q" class="tws-is-input" type="search" autocomplete="off" 2696 placeholder="Search Gundog Journalâ¦" 2697 aria-label="Search Gundog Journal"> 2698 <button type="button" class="tws-is-clear" aria-label="Clear search" hidden>×</button> 2699 </div> 2700 <div class="tws-is-body" role="region" aria-live="polite"></div> 2701 </div> </div> 2702</div> 2703</header> 2704 2705 <!-- Page Content --> 2706 <main class="text-gray-800"> 2707 2708 2709 <style>.tws-page-title{font-size:28px;line-height:1.15;margin-bottom:20px}.tws-title-h1--sized{font-size:30px;line-height:26px}@media (min-width:768px){.tws-page-title{font-size:45px;line-height:1.1}}</style><section class="relative lg:mt-[40px] mt-[20px]"> 2710 2711 2712 <div class="container "> 2713 <div class="text-and-form-block flex flex-col md:flex-row my-6 w-full max-h-none overflow-hidden"> 2714 2715 <div class="w-full lg:w-7/12 flex flex-col space-y-4 pt-2 pb-2 md:pr-[10%]"> 2716 <h1 class="text-1xl md:text-[32px] font-bold tws-title-h1">Contact us</h1> 2717 <p class="text-base md:text-md"><p>We’d love to hear from you!</p> 2718<p>Whether you have subscription inquiries, editorial feedback, or advertising opportunities, our dedicated team is here to assist you. With our extensive experience in the gundog community, we value your input and are committed to providing exceptional service to our readers and partners. Find the right contact information below to connect with our editorial, subscription, or advertising departments.</p> 2719<p>Registered in England and Wales at companies house with company number 10204110.</p> 2720</p> 2721 </div> 2722 2723 2724 <div class="w-full lg:w-5/12 flex justify-center md:justify-start h-full"> 2725 <div class="wpcf7-container w-full max-w-none p-6"> 2726 <h3 class="mb-8 text-lg font-semibold">Contact form</h3> 2727 2728<div class="wpcf7 no-js" id="wpcf7-f2849-o1" lang="en-US" dir="ltr" data-wpcf7-id="2849"> 2729<div class="screen-reader-response"><p role="status" aria-live="polite" aria-atomic="true"></p> <ul></ul></div> 2730<form action="/contact/#wpcf7-f2849-o1" method="post" class="wpcf7-form init" aria-label="Contact form" novalidate="novalidate" data-status="init"> 2731<fieldset class="hidden-fields-container"><input type="hidden" name="_wpcf7" value="2849" /><input type="hidden" name="_wpcf7_version" value="6.1.7" /><input type="hidden" name="_wpcf7_locale" value="en_US" /><input type="hidden" name="_wpcf7_unit_tag" value="wpcf7-f2849-o1" /><input type="hidden" name="_wpcf7_container_post" value="0" /><input type="hidden" name="_wpcf7_posted_data_hash" value="" /><input type="hidden" name="_wpcf7_recaptcha_response" value="" /> 2732</fieldset> 2733<div class="relative z-0"> 2734<span class="wpcf7-form-control-wrap" data-name="your-name"> 2735<input size="40" maxlength="400" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required floating-standard peer" autocomplete="name" aria-required="true" aria-invalid="false" placeholder="" value="" type="text" name="your-name" /> 2736 <label for="your-name" class="floating-standard-label duration-300 transform -translate-y-6 scale-75 top-3 -z-10 origin-[0] peer-focus:start-0 peer-focus:text-gray-600 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-6 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto">Full Name * </label> 2737</span> 2738</div> 2739 2740<div class="relative z-0"> 2741<span class="wpcf7-form-control-wrap" data-name="your-email"> 2742<input size="40" maxlength="400" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required floating-standard peer" autocomplete="name" aria-required="true" aria-invalid="false" placeholder="" value="" type="text" name="your-email" /> 2743 <label for="your-email" class="floating-standard-label duration-300 transform -translate-y-6 scale-75 top-3 -z-10 origin-[0] peer-focus:start-0 peer-focus:text-gray-600 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-6 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto">Email address * </label> 2744</span> 2745</div> 2746 2747 2748<div class="relative z-0"> 2749<span class="wpcf7-form-control-wrap" data-name="your-message"> 2750<textarea cols="40" rows="4" maxlength="2000" class="wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required floating-standard peer" autocomplete="name" aria-required="true" aria-invalid="false" placeholder="" name="your-message"></textarea> 2751 <label for="your-message" class="floating-standard-label duration-300 transform -translate-y-6 scale-75 top-3 -z-10 origin-[0] peer-focus:start-0 peer-focus:text-gray-600 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-6 rtl:peer-focus:translate-x-1/4 rtl:peer-focus:left-auto">Message * </label> 2752</span> 2753</div> 2754 2755 2756<span class="wpcf7-form-control wpcf7-acceptance"><span class="wpcf7-list-item"><label><input type="checkbox" name="acceptance-to-form" value="1" aria-invalid="false" /><span class="wpcf7-list-item-label">I agree to the terms & conditions. Please see our <a href="/privacy-policy" style="text-decoration: underline;" target="_blank">Privacy Policy</a> for further information</span></label></span></span> 2757 2758<input class="wpcf7-form-control wpcf7-submit has-spinner btn-normal btn-primary-hover-dark" type="submit" value="Submit" /><div class="wpcf7-response-output" aria-hidden="true"></div> 2759</form> 2760</div> 2761 2762 </div> 2763 </div> 2764 </div> 2765 </div> 2766 2767 2768</section> 2769 2770 2771<section class="relative lg:mt-[40px] mt-[20px]"> 2772 2773 2774 <div class="container "> 2775 <div class="flex flex-col items-start md:flex-row gap-[75px] my-8"> 2776 2777 2778 <div class="w-full md:w-1/2 flex flex-col"> 2779 <h3 class="text-2xl md:text-3xl font-semibold text-gray-800 mb
2779-4 md:mb-6 text-left"> 2780 Editorial 2781 </h3> 2782 <div class="text-gray-600 text-base md:text-lg font-light leading-relaxed text-left"> 2783 <p>If you’d like to get in touch with our editorial team, please contact:</p> 2784<p>Rebecca Green, Editor</p> 2785<p>E:Â <a href="mailto:[email protected]">[email protected]</a> or <a href="mailto:[email protected]">[email protected]</a></p> 2786 2787 </div> 2788 </div> 2789 2790 2791 <div class="w-full md:w-1/2 flex flex-col"> 2792 <h3 class="text-2xl md:text-3xl font-semibold text-gray-800 mb-4 md:mb-6 text-left"> 2793 Advertising 2794 </h3> 2795 <div class="text-gray-600 text-base md:text-lg font-light leading-relaxed text-left"> 2796 <p>If you’d like to get in touch with our advertising team, please contact:</p> 2797<p>Chetna Matharu<!-- notionvc: 77844590-2495-4ad7-b451-236da8c4b66a -->, Account Manager</p> 2798<p>E:Â <a title="mailto:[email protected]" href="mailto:[email protected]" target="_blank" rel="noopener" aria-label="Link [email protected]">chetna.matharu<!-- notionvc: 77844590-2495-4ad7-b451-236da8c4b66a -->@twsgroup.com</a></p> 2799<p>T:Â <a href="tel:+44 (0) 131 573 0373"> +44 (0) 131 573 0373</a></p> 2800 2801 </div> 2802 </div> 2803 2804 </div> 2805 </div> 2806 2807 2808</section> 2809 2810 2811<section class="relative lg:mt-[40px] mt-[20px]"> 2812 2813 2814 <div class="container "> 2815 <div class="flex flex-col items-start md:flex-row gap-[75px] my-8"> 2816 2817 2818 <div class="w-full md:w-1/2 flex flex-col"> 2819 <h3 class="text-2xl md:text-3xl font-semibold text-gray-800 mb-4 md:mb-6 text-left"> 2820 Subscriptions, single issues and books 2821 </h3> 2822 <div class="text-gray-600 text-base md:text-lg font-light leading-relaxed text-left"> 2823 <p>To subscribe to Gundog Journal, buy a single issue or one of our books, please visit <a href="https://shop.twsgroup.com/">shop.twsgroup.com</a>, or call 0131 3576305. You can also email any questions about your subscription to <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e18e9385849392a195969286938e9491cf828e8c">[email protected]</a> or visit the FAQs page <a href="https://shop.twsgroup.com/subscription-faqs">here</a>.</p> 2824 2825 </div> 2826 </div> 2827 2828 2829 <div class="w-full md:w-1/2 flex flex-col"> 2830 <h3 class="text-2xl md:text-3xl font-semibold text-gray-800 mb-4 md:mb-6 text-left"> 2831 Trading address 2832 </h3> 2833 <div class="text-gray-600 text-base md:text-lg font-light leading-relaxed text-left"> 2834 <p>Time Well Spent Group Limited, C/O Avonglen, Epsilon House,<br /> 2835Enterprise Road, Southampton Science Park,<br /> 2836Southampton, Hampshire, SO16 7NS</p> 2837 2838 </div> 2839 </div> 2840 2841 </div> 2842 </div> 2843 2844 2845</section> 2846 2847 2848<section class="relative lg:mt-[40px] mt-[20px]"> 2849 2850 2851 <div class="container "> 2852 <div class="flex justify-center items-center"> 2853 <div class="a-single a-2"><!-- /22987101562/GDJ.com-WideUpperBanner-MPU style='min-width: 320px; min-height: 90px;' --> 2854<div id='div-gpt-ad-1737909961481-0'>
vendor: 112 bytes, lines 2854-2855
2854 2855 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
2855<script> 2856 // Event Listener added by NetMatters 2857 window.addEventListener('gptScriptLoaded', function() { 2858 googletag.cmd.push(function() { googletag.display('div-gpt-ad-1737909961481-0'); }); 2859 }); 2860 </script>
2860 2861</div></div> </div> 2862 </div> 2863 2864 2865</section> 2866 2867 2868 2869 </main> 2870 2871</div> 2872 2873<div class="mt-[20px] lg:mt-[40px] disable-wpr-lazyrender"> 2874 <div class="subscribe-cta-block bg-black py-[80px] md:py-[40px]"> 2875 2876 <div class="container gap-[20px] flex flex-col lg:flex-row w-full overflow-hidden items-center"> 2877 2878 2879 <div 2880 class="w-full lg:w-1/2 gap-[20px] flex flex-col justify-center text-white text-center subscribe-content-left"> 2881 <div> 2882 <p class="text-[12px] text-center font-light lg:text-left text-white">Get the latest news delivered direct to your door</p> 2883 <h2 style="margin-bottom: 0;" class="text-[32px] leading-normal text-center lg:text-left font-bold"> 2884 Subscribe to Gundog Journal</h2> 2885 </div> 2886 2887 <div class="text-base lg:text-md text-center font-light leading-[24px] lg:text-left "> 2888 <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> 2889<p>With stunning photography and thought-provoking content, Gundog Journal is your essential guide to understanding, training and celebrating your working dog.</p> 2890<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> 2891<p> </p> 2892 2893 </div> 2894 <a href="https://shop.twsgroup.com/subscribe/gundog-journal" 2895 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" 2896 style="background-color: #b38750;"> 2897 Subscribe 2898 </a> 2899 </div> 2900 2901 2902 <div class="flex flex-row w-full lg:w-1/2 h-full gap-[20px] md:gap-[40px] lg:gap-[20px]"> 2903 <div class="w-full flex lg:w-1/2"> 2904 <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" 2905 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" 2906 class="w-full aspect-[0.83/1] object-contain"></noscript> 2907 </div> 2908 <div class="w-full flex lg:w-1/2"> 2909 <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" 2910 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" 2911 class="w-full aspect-[0.83/1] object-contain"></noscript> 2912 </div> 2913 </div> 2914 </div> 2915 2916</div> 2917 </div> 2918 2919<footer class="bg-secondary text-white disable-wpr-lazyrender"> 2920 <div class="container"> 2921 <div class="footer-top flex container py-[20px] lg:py-[40px] px-0"> 2922 <div class="grid grid-cols-12 w-full gap-[20px] lg:gap-[40px]"> 2923 <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"> 2924 <div class="footer-logo-wrapper flex flex-col items-center w-full md:w-fit mb-[20px] lg:mb-[0]"> 2925 <a href="https://gundog-journal.com/" aria-label="Home" class="flex justify-start w-[100%]"> 2926 <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" 2927 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" 2928 alt="" /></noscript> 2929 </a> 2930 <h6 class="text-[12px] text-center">Training . Advice . Comment</h6> 2931 </div> 2932 <div 2933 class="flex md:hidden footer-form-container flex flex-col column-5 col
2933-span-12 md:col-span-6 lg:col-span-3"> 2934 <h4 class="mb-5 pb-2 text-[12px]">Subscribe to our newsletter today: </h4> 2935 <a href="https://gundog-journal.com/newsletter/" 2936 class="btn-normal mb-[20px] btn-primary-hover-dark text-white hover:text-white"> 2937 Sign up 2938 </a> 2939 </div> 2940 2941 <div class="footer-contacts flex flex-col gap-16px"> 2942 <span class="text-white text-base">Get in touch:</span> 2943 <div class="flex items-center gap-16px"> 2944 <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" 2945 >+44 (0) 131 357 6305</a> 2946 </div> 2947 <div class="flex items-center gap-16px"> 2948 <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"> 2949<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"/> 2950 2951</svg> <a class="text-[12px] hover:text-primary break-all" 2952 href="mailto:[email protected]" 2953 >[email protected]</a> 2954 </div> 2955 </div> 2956 2957 2958 <div class="downloadable-links flex flex-col gap-4 mb-5 lg:mb-0"> 2959 <span class="text-white text-base">On the go? Get the app:</span> 2960 <div class="flex gap-[10px]"> 2961 <a href="https://apps.apple.com/us/app/gundog-journal/id6463429302" target="_blank" rel="noopener noreferrer" class="d-block"> 2962 <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" 2963 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" 2964 class=" h-[50px] max-h-[50px]"></noscript> 2965 </a> 2966 <a href="https://play.google.com/store/apps/details?id=com.jellyfish.gundogjournal" target="_blank" rel="noopener noreferrer" class="d-block"> 2967 <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" 2968 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" 2969 class=" h-[50px] max-h-[50px]"></noscript> 2970 </a> 2971 </div> 2972 </div> 2973 2974 </div> 2975 2976 <div x-data="{ expanded_1: window.innerWidth > 899 }" 2977 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"> 2978 <h4 :class="{ 2979 'after:ml-auto after:content-[\'\\f343\'] after:font-[dashicons]': expanded_1 && window 2980 .innerWidth < 2981 899, 2982 'after:ml-auto after:content-[\'\\f347\'] after:font-[dashicons]': !expanded_1 && window 2983 .innerWidth < 899 2984 }" 2985 @click="expanded_1 = ! expanded_1" class="border-b border-white mb-4 pb-2 flex"> 2986 Useful links </h4> 2987 <div x-show="expanded_1" x-collapse> 2988 <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> 2989<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> 2990<li id="menu-item-2871" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-197 current_page_item menu-item-2871"><a href="https://gundog-journal.com/contact/" aria-current="page">Contact us</a></li> 2991<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> 2992</ul></div> </div> 2993 </div> 2994 2995 <div x-data="{ expanded_2: window.innerWidth > 899 }" 2996 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"> 2997 <h4 :class="{ 2998 'after:ml-auto after:content-[\'\\f343\'] after:font-[dashicons]': expanded_2 && window 2999 .innerWidth < 3000 899, 3001 'after:ml-auto after:content-[\'\\f347\'] after:font-[dashicons]': !expanded_2 && window 3002 .innerWidth < 899 3003 }" 3004 @click="expanded_2 = ! expanded_2" class="border-b border-white mb-4 pb-2 flex"> 3005 Policies </h4> 3006 <div x-show="expanded_2" x-collapse> 3007 <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> 3008<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> 3009<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> 3010</ul></div> </div> 3011 3012 3013 <h4 :class="{ 3014 'after:ml-auto after:content-[\'\\f343\'] after:font-[dashicons]': expanded_2 && window 3015 .innerWidth < 3016 899, 3017 'after:ml-auto after:content-[\'\\f347\'] after:font-[dashicons]': !expanded_2 && window 3018 .innerWidth < 899 3019 }" 3020 @click="expanded_2 = ! expanded_2" class="border-b border-white mb-4 pb-2 mt-[40px] lg:mt-4 flex"> 3021 Other Interests </h4> 3022 <div x-show="expanded_2" x-collapse> 3023 <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> 3024<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> 3025<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> 3026<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> 3027<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> 3028<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> 3029</ul></div> </div> 3030 </div> 3031 3032 <div class="mb-[20px] lg:mb-[0] order-5 lg:order-4 flex flex-col column-4 c
3032ol-span-12 md:col-span-4 lg:col-span-2"> 3033 <h4 class="mb-4 text-[12px] pb-2">Part of Time Well Spent</h4> 3034 <a class="hover:opacity-80 flex justify-center lg:justify-start" target="_blank" 3035 href="http://twsgroup.com"> 3036 <img width="198" height="94" class="twsgroup-logo w-[250px] h-[125px] md:w-[150px] md:h-[75px] object-contain" 3037 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" 3038 src="/app/uploads/sites/2/2024/11/Frame-17.png" alt="" /></noscript> 3039 </a> 3040 </div> 3041 3042 <div 3043 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"> 3044 <h4 class="mb-5 pb-2 text-[12px]">Subscribe to our newsletter today: </h4> 3045 <a href="https://gundog-journal.com/newsletter/" 3046 class="btn-normal mb-[20px] btn-primary-hover-dark text-white hover:text-white"> 3047 Sign up 3048 </a> 3049 3050 <div class="social-icons flex flex-col gap-16px mb-[20px] lg:mb-[0]"> 3051 <span class="text-white text-base">Connect with us:</span> 3052 <div class="flex"> 3053 3054 <a class="flex justify-center items-center w-[30px] h-[30px]" href="https://www.facebook.com/GundogJournal/"> 3055 <span class="sr-only">Facebook</span> 3056 <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"> 3057 <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"/> 3058</svg> 3059</a> 3060 3061 <a class="flex justify-center items-center w-[30px] h-[30px]" href="https://www.instagram.com/gundogjournal/"> 3062 <span class="sr-only">Instagram</span> 3063 <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"> 3064 <g clip-path="url(#clip0_501_3526)"> 3065 <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"/> 3066 </g>
3067 <defs> 3068 <clipPath id="clip0_501_3526"> 3069 <rect width="24" height="24" fill="white"/> 3070 </clipPath> 3071 </defs> 3072</svg> 3073</a> 3074 3075 3076 3077 3078 </div> 3079 </div> 3080 3081 3082 </div> 3083 </div> 3084 </div> 3085 </div> 3086 3087 <div class="bg-primary footer-bottom py-[10px]"> 3088 <div class="container flex flex-wrap gap-[10px] justify-center lg:justify-between "> 3089 <div class="text-center"> 3090 <a class="!text-center text-[12px] hover:text-white hover:underline" 3091 href="/sitemap_index.xml" 3092 > 3093 Sitemap </a> 3094 </div> 3095 <div class="copyright text-[12px] text-center"> 3096 <span>© Time Well Spent Group, All rights reserved. Registered in England and Wales at Companies 3097 House 3098 with company number 10204110</span> 3099 </div> 3100 </div> 3101 3102 </div> 3103 3104<!-- Netmatters Uptime Ping Test Response --> 3105</footer> 3106 </div> 3107 3108 3109<!-- Consent Management powered by Complianz | GDPR/CCPA Cookie Consent https://wordpress.org/plugins/complianz-gdpr --> 3110<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"> 3111 <div class="cmplz-header"> 3112 <div class="cmplz-logo"></div> 3113 <div class="cmplz-title" id="cmplz-header-1-optin">Manage Consent</div> 3114 <div class="cmplz-close" tabindex="0" role="button" aria-label="Close dialog"> 3115 <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> 3116 </div> 3117 </div> 3118 3119 <div class="cmplz-divider cmplz-divider-header"></div> 3120 <div class="cmplz-body"> 3121 <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> 3122 <!-- categories start --> 3123 <div class="cmplz-categories"> 3124 <details class="cmplz-category cmplz-functional" > 3125 <summary> 3126 <span class="cmplz-category-header"> 3127 <span class="cmplz-category-title">Functional</span> 3128 <span class='cmplz-always-active'> 3129 <span class="cmplz-banner-checkbox"> 3130 <input type="checkbox" 3131 id="cmplz-functional-optin" 3132 data-category="cmplz_functional" 3133 class="cmplz-consent-checkbox cmplz-functional" 3134 size="40" 3135 value="1"/> 3136 <label class="cmplz-label" for="cmplz-functional-optin" tabindex="0"><span class="screen-reader-text">Functional</span></label> 3137 </span> 3138 Always active </span> 3139 <span class="cmplz-icon cmplz-open"> 3140 <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> 3141 </span> 3142 </span> 3143 </summary> 3144 <div class="cmplz-description"> 3145 <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> 3146 </div> 3147 </details> 3148 3149 <details class="cmplz-category cmplz-preferences" > 3150 <summary> 3151 <span class="cmplz-category-header"> 3152 <span class="cmplz-category-title">Preferences</span> 3153 <span class="cmplz-banner-checkbox"> 3154 <input type="checkbox" 3155 id="cmplz-preferences-optin" 3156 data-category="cmplz_preferences" 3157 class="cmplz-consent-checkbox cmplz-preferences" 3158 size="40" 3159 value="1"/> 3160 <label class="cmplz-label" for="cmplz-preferences-optin" tabindex="0"><span class="screen-reader-text">Preferences</span></label> 3161 </span> 3162 <span class="cmplz-icon cmplz-open"> 3163 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" height="18" >
3163<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> 3164 </span> 3165 </span> 3166 </summary> 3167 <div class="cmplz-description"> 3168 <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> 3169 </div> 3170 </details> 3171 3172 <details class="cmplz-category cmplz-statistics" > 3173 <summary> 3174 <span class="cmplz-category-header"> 3175 <span class="cmplz-category-title">Statistics</span> 3176 <span class="cmplz-banner-checkbox"> 3177 <input type="checkbox" 3178 id="cmplz-statistics-optin" 3179 data-category="cmplz_statistics" 3180 class="cmplz-consent-checkbox cmplz-statistics" 3181 size="40" 3182 value="1"/> 3183 <label class="cmplz-label" for="cmplz-statistics-optin" tabindex="0"><span class="screen-reader-text">Statistics</span></label> 3184 </span> 3185 <span class="cmplz-icon cmplz-open"> 3186 <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> 3187 </span> 3188 </span> 3189 </summary> 3190 <div class="cmplz-description"> 3191 <span class="cmplz-description-statistics">The technical storage or access that is used exclusively for statistical purposes.</span> 3192 <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> 3193 </div> 3194 </details> 3195 <details class="cmplz-category cmplz-marketing" > 3196 <summary> 3197 <span class="cmplz-category-header"> 3198 <span class="cmplz-category-title">Marketing</span> 3199 <span class="cmplz-banner-checkbox"> 3200 <input type="checkbox" 3201 id="cmplz-marketing-optin" 3202 data-category="cmplz_marketing" 3203 class="cmplz-consent-checkbox cmplz-marketing" 3204 size="40" 3205 value="1"/> 3206 <label class="cmplz-label" for="cmplz-marketing-optin" tabindex="0"><span class="screen-reader-text">Marketing</span></label> 3207 </span> 3208 <span class="cmplz-icon cmplz-open"> 3209 <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> 3210 </span> 3211 </span> 3212 </summary> 3213 <div class="cmplz-description"> 3214 <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> 3215 </div> 3216 </details> 3217 </div><!-- categories end --> 3218 </div> 3219 3220 <div class="cmplz-links cmplz-information"> 3221 <a class="cmplz-link cmplz-manage-options cookie-statement" href="#" data-relative_url="#cmplz-manage-consent-container">Manage options</a> 3222 <a class="cmplz-link cmplz-manage-third-parties cookie-statement" href="#" data-relative_url="#cmplz-cookies-overview">Manage services</a> 3223 <a class="cmplz-link cmplz-manage-vendors tcf cookie-statement" href="#" data-relative_url="#cmplz-tcf-wrapper">Manage {vendor_count} vendors</a> 3224 <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> 3225 </div> 3226 3227 <div class="cmplz-divider cmplz-footer"></div> 3228 3229 <div class="cmplz-buttons"> 3230 <button class="cmplz-btn cmplz-accept">Accept</button> 3231 <button class="cmplz-btn cmplz-deny">Deny</button> 3232 <button class="cmplz-btn cmplz-view-preferences">View preferences</button> 3233 <button class="cmplz-btn cmplz-save-preferences">Save preferences</button> 3234 <a class="cmplz-btn cmplz-manage-options tcf cookie-statement" href="#" data-relative_url="#cmplz-manage-consent-container">View preferences</a> 3235 </div> 3236 3237 <div class="cmplz-links cmplz-documents"> 3238 <a class="cmplz-link cookie-statement" href="#" data-relative_url="">{title}</a> 3239 <a class="cmplz-link privacy-statement" href="#" data-relative_url="">{title}</a> 3240 <a class="cmplz-link impressum" href="#" data-relative_url="">{title}</a> 3241 </div> 3242 3243</div> 3244</div> 3245 <div id="cmplz-manage-consent" data-nosnippet="true"><button class="cmplz-btn cmplz-hidden cmplz-manage-consent manage-consent-1">
3245Manage consent</button> 3246 3247</div><div class="wppopups-whole" style="display: none"></div><link rel='stylesheet' id='contact-form-7-css' href='https://www.shootinguk.co.uk/app/plugins/contact-form-7/includes/css/styles.css?ver=6.1.7' media='all' />
3248<script src="https://gundog-journal.com/wp-includes/js/dist/hooks.min.js?ver=4d63a3d491d11ffd8ac6" id="wp-hooks-js"></script>
vendor: 1 bytes, line 3248
3248
3249<script id="wppopups-js-extra"> 3250var wppopups_vars = {"is_admin":"","ajax_url":"https:\/\/gundog-journal.com\/wp-admin\/admin-ajax.php","pid":"197","is_front_page":"","is_blog_page":"","is_category":"","site_url":"https:\/\/gundog-journal.com","is_archive":"","is_search":"","is_singular":"1","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"}; 3251</script>
vendor: 1 bytes, line 3251
3251
3252<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 3252
3252
3253<script id="adrotate-clicker-js-extra"> 3254var click_object = {"ajax_url":"https:\/\/gundog-journal.com\/wp-admin\/admin-ajax.php"}; 3255</script>
vendor: 1 bytes, line 3255
3255
3256<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 3256
3256
3257<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 3257
3257
3258<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 3258
3258
3259<script id="jquery-ui-datepicker-js-after">window.addEventListener('DOMContentLoaded', function() { 3260jQuery(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});}); 3261});</script>
vendor: 1 bytes, line 3261
3261
3262<script id="rocket-browser-checker-js-after"> 3263"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}(); 3264</script>
vendor: 1 bytes, line 3264
3264
3265<script id="rocket-preload-links-js-extra"> 3266var 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"}; 3267</script>
vendor: 1 bytes, line 3267
3267
3268<script id="rocket-preload-links-js-after"> 3269(function() { 3270"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(); 3271}()); 3272</script>
vendor: 1 bytes, line 3272
3272
3273<script id="rocket_lazyload_css-js-extra"> 3274var rocket_lazyload_css_data = {"threshold":"300"}; 3275</script>
vendor: 1 bytes, line 3275
3275
3276<script id="rocket_lazyload_css-js-after"> 3277!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]); 3278</script>
vendor: 1 bytes, line 3278
3278
3279<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 3279
3279
3280<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 3280-3281
3280 3281<script src="https://www.google.com/recaptcha/api.js?render=
32816Lc7EbYqAAAAACJ8DDnekgslgYuG9sBDDTmYgbWv
vendor: 49 bytes, line 3281
3281&ver=3.0" id="google-recaptcha-js"></script>
3282<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 3282
3282
3283<script id="wpcf7-recaptcha-js-before"> 3284var wpcf7_recaptcha = { 3285 "sitekey": "6Lc7EbYqAAAAACJ8DDnekgslgYuG9sBDDTmYgbWv", 3286 "actions": { 3287 "homepage": "homepage", 3288 "contactform": "contactform" 3289 } 3290}; 3291</script>
vendor: 1 bytes, line 3291
3291
3292<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 3292
3292
3293<script id="app/0-js-before"> 3294(()=>{"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))})()})(); 3295</script>
vendor: 1 bytes, line 3295
3295
3296<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 3296
3296
3297<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 3297
3297
3298<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 3298
3298
3299<script id="cmplz-cookiebanner-js-extra"> 3300var 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"}; 3301</script>
vendor: 1 bytes, line 3301
3301
3302<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 3302
3302
3303<script id="cmplz-cookiebanner-js-after"> 3304document.addEventListener("cmplz_enable_category", function () { 3305 document.querySelectorAll('[data-rocket-lazyload]').forEach(obj => { 3306 if (obj.hasAttribute('data-lazy-src')) { 3307 obj.setAttribute('src', obj.getAttribute('data-lazy-src')); 3308 } 3309 }); 3310 }); 3311 3312 3313</script>
vendor: 1 bytes, line 3313
3313
3314<script src="https://gundog-journal.com/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script>
vendor: 1 bytes, line 3314
3314
3315<script id="wp-i18n-js-after"> 3316wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); 3317</script>
vendor: 1 bytes, line 3317
3317
3318<script src="https://www.shootinguk.co.uk/app/plugins/contact-form-7/includes/swv/js/index.js?ver=6.1.7" id="swv-js" data-rocket-defer defer></script>
vendor: 1 bytes, line 3318
3318
3319<script id="contact-form-7-js-before"> 3320var wpcf7 = { 3321 "api": { 3322 "root": "https:\/\/gundog-journal.com\/wp-json\/", 3323 "namespace": "contact-form-7\/v1" 3324 }, 3325 "cached": 1 3326}; 3327</script>
vendor: 1 bytes, line 3327
3327
3328<script src="https://www.shootinguk.co.uk/app/plugins/contact-form-7/includes/js/index.js?ver=6.1.7" id="contact-form-7-js" data-rocket-defer defer></script>
3328 3329<!-- Statistics script Complianz GDPR/CCPA --> 3330
3330<script data-category="functional">
vendor: 339 bytes, lines 3330-3335
3330 3331 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 3332 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 3333 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 3334 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 3335})(window,document,'script','dataLayer','
3335GTM-KZ46D2PN
vendor: 10 bytes, lines 3335-3336
3335'); 3336
3336</script>
3336<script id="tws-crossword-deadline" data-no-optimize="1" data-no-defer="1" data-no-minify="1" data-cfasync="false"> 3337(function () { 3338 var TZ = "Europe\/London"; 3339 var CLASS = "tws-crossword-deadline"; 3340 var EVERY = 28; 3341 var DEFAULT = "j F, Y"; 3342 3343 var DAY = 86400000; 3344 var DAYS = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']; 3345 var MONTHS = ['January','February','March','April','May','June','July','August', 3346 'September','October','November','December']; 3347 3348 // All arithmetic is done on whole UTC days. Local midnights either side of a clock 3349 // change are not exactly 24 hours apart, which would round a long cycle the wrong way. 3350 function todayAtSite() { 3351 var now = new Date(); 3352 try { 3353 var p = new Intl.DateTimeFormat('en-GB', { 3354 timeZone: TZ, year: 'numeric', month: '2-digit', day: '2-digit' 3355 }).formatToParts(now).reduce(function (acc, x) { acc[x.type] = x.value; return acc; }, {}); 3356 return Date.UTC(+p.year, +p.month - 1, +p.day); 3357 } catch (e) { 3358 // Timezone unsupported or invalid: fall back to the visitor's own clock. 3359 return Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()); 3360 } 3361 } 3362 3363 // Rejects anything that is not a real calendar date, so 2026-02-31 is refused here just 3364 // as it is in PHP rather than silently rolling over into March. 3365 function parseStart(s) { 3366 var m = /^(\d{4})-(\d{2})-(\d{2})$/.exec(String(s || '').replace(/^\s+|\s+$/g, '')); 3367 if (!m) { return null; } 3368 var t = Date.UTC(+m[1], +m[2] - 1, +m[3]); 3369 var d = new Date(t); 3370 if (d.getUTCFullYear() !== +m[1] || d.getUTCMonth() !== +m[2] - 1 || d.getUTCDate() !== +m[3]) { 3371 return null; 3372 } 3373 return t; 3374 } 3375 3376 function deadline(anchor, every, skip) { 3377 var today = todayAtSite(); 3378 var span = Math.max(1, every) * DAY; 3379 var elapsed = today - anchor; 3380 var cycles = elapsed > 0 ? Math.ceil(elapsed / span) : 0; 3381 3382 return new Date(anchor + (cycles + skip) * span); 3383 } 3384 3385 function pad(n) { return n < 10 ? '0' + n : '' + n; } 3386 3387 function ordinal(n) { 3388 if (n > 3 && n < 21) { return 'th'; } 3389 switch (n % 10) { 3390 case 1: return 'st'; 3391 case 2: return 'nd'; 3392 case 3: return 'rd'; 3393 default: return 'th'; 3394 } 3395 } 3396 3397 // The subset of PHP's date() tokens that makes sense for a plain date. 3398 // A backslash escapes the next character, as it does in PHP. 3399 function format(d, fmt) { 3400 var out = ''; 3401 for (var i = 0; i < fmt.length; i++) { 3402 var c = fmt.charAt(i); 3403 if (c === '\\') { out += fmt.charAt(++i) || ''; continue; } 3404 switch (c) { 3405 case 'j': out += d.getUTCDate(); break; 3406 case 'd': out += pad(d.getUTCDate()); break; 3407 case 'S': out += ordinal(d.getUTCDate()); break; 3408 case 'l': out += DAYS[d.getUTCDay()]; break; 3409 case 'D': out += DAYS[d.getUTCDay()].slice(0, 3); break; 3410 case 'N': out += (d.getUTCDay() === 0 ? 7 : d.getUTCDay()); break; 3411 case 'w': out += d.getUTCDay(); break; 3412 case 'F': out += MONTHS[d.getUTCMonth()]; break; 3413 case 'M': out += MONTHS[d.getUTCMonth()].slice(0, 3); break; 3414 case 'n': out += (d.getUTCMonth() + 1); break; 3415 case 'm': out += pad(d.getUTCMonth() + 1); break; 3416 case 'Y': out += d.getUTCFullYear(); break; 3417 case 'y': out += pad(d.getUTCFullYear() % 100); break; 3418 default: out += c; 3419 } 3420 } 3421 return out; 3422 } 3423 3424 function iso(d) { 3425 return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()); 3426 } 3427 3428 function fix(el) { 3429 var anchor = parseStart(el.getAttribute('data-start')); 3430 3431 // No usable start date. PHP has already flagged it to editors; leave it alone. 3432 if (anchor === null) { return; } 3433 3434 var every = parseInt(el.getAttribute('data-every'), 10); 3435 if (isNaN(every) || every < 1) { every = EVERY; } 3436 3437 var skip = parseInt(el.getAttribute('data-skip'), 10); 3438 if (isNaN(skip) || skip < 0) { skip = 0; } 3439 3440 var d = deadline(anchor, every, skip); 3441 var want = iso(d); 3442 3443 // Leave it alone if PHP already wrote the right date and there is text there. 3444 if (el.getAttribute('data-date') === want && el.textContent.trim() !== '') { return; } 3445 3446 el.textContent = format(d, el.getAttribute('data-format') || DEFAULT); 3447 el.setAttribute('data-date', want); 3448 } 3449 3450 function refresh() { 3451 var nodes = document.querySelectorAll('.' + CLASS); 3452 for (var i = 0; i < nodes.length; i++) { fix(nodes[i]); } 3453 } 3454 3455 if (document.readyState === 'loading') { 3456 document.addEventListener('DOMContentLoaded', refresh); 3457 } else { 3458 refresh(); 3459 } 3460 3461 // A page restored from the back/forward cache, or left open overnight and returned to, 3462 // gets a fresh reading rather than yesterday's. 3463 window.addEventListener('pageshow', refresh); 3464 document.addEventListener('visibilitychange', function () { 3465 if (!document.hidden) { refresh(); } 3466 }); 3467}()); 3468</script>
3468 3469
3469<script id="tws-comp-js"> 3470(function(){ 3471 var AJAX = "\/wp-admin\/admin-ajax.php", DELAY = 8000; 3472 var store = { 3473 get: function(k){ try { return window.localStorage.getItem(k); } catch (e) { return null; } }, 3474 set: function(k, v){ try { window.localStorage.setItem(k, v); } catch (e) {} } 3475 }; 3476 function leftText(closes, now){ 3477 if (now > closes) { return 'Closed'; } 3478 var a = new Date(now * 1000), b = new Date(closes * 1000); 3479 a.setHours(0, 0, 0, 0); b.setHours(0, 0, 0, 0); 3480 var d = Math.round((b - a) / 864e5); 3481 if (d <= 0) { return 'Last chance â closes tonight'; } 3482 if (d === 1) { return 'Closes tomorrow'; } 3483 if (d <= 30) { return 'Closes in ' + d + ' days'; } 3484 return null; // leave the server's date text alone 3485 } 3486 function tick(){ 3487 var now = Math.floor(Date.now() / 1000); 3488 document.querySelectorAll('[data-tws-comp-closes]').forEach(function(el){ 3489 var closes = parseInt(el.getAttribute('data-tws-comp-closes'), 10); 3490 if (!closes) { return; } 3491 if (now > closes) { 3492 if (el.hasAttribute('data-tws-comp-expire')) { 3493 var band = el.closest('[data-tws-comp-band]'); 3494 el.remove(); 3495 if (band) { 3496 if (!band.querySelector('[data-tws-comp]')) { 3497 var sec = band.closest('.tws-comp-section'); 3498 (sec || band).remove(); 3499 } 3500 } 3501 } 3502 return; 3503 } 3504 var t = leftText(closes, now); 3505 if (t !== null) { 3506 el.querySelectorAll('[data-tws-comp-left]').forEach(function(s){ 3507 s.textContent = s.hasAttribute('data-lower') ? t.charAt(0).toLowerCase() + t.slice(1) : t; 3508 }); 3509 } 3510 var dhm = el.querySelector('[data-tws-comp-dhm]'); 3511 if (dhm) { 3512 var s = closes - now; 3513 dhm.querySelector('[data-d]').textContent = Math.floor(s / 86400); 3514 dhm.querySelector('[data-h]').textContent = Math.floor(s % 86400 / 3600); 3515 dhm.querySelector('[data-m]').textContent = Math.floor(s % 3600 / 60); 3516 } 3517 }); 3518 } 3519 function hit(el){ 3520 var id = el.getAttribute('data-tws-comp'), place = el.getAttribute('data-tws-comp-place'); 3521 try { 3522 window.dataLayer = window.dataLayer || []; 3523 window.dataLayer.push({ event: 'tws_competition_click', tws_competition: el.getAttribute('data-tws-comp-slug'), tws_placement: place }); 3524 } catch (e) {} 3525 try { 3526 var f = new FormData(); f.append('action', 'tws_comp_click'); f.append('c', id); f.append('p', place); 3527 if (navigator.sendBeacon) { navigator.sendBeacon(AJAX, f); } 3528 else { fetch(AJAX, { method: 'POST', body: f, keepalive: true, credentials: 'omit' }); } 3529 } catch (e) {} 3530 } 3531 function seen(el, kind){ store.set('tws_comp_' + kind + '_' + el.getAttribute('data-tws-comp'), String(Date.now())); } 3532 document.addEventListener('click', function(e){ 3533 var go = e.target.closest('[data-tws-comp-go]'); 3534 if (go) { 3535 var box = go.closest('[data-tws-comp]'); 3536 if (box) { 3537 hit(box); 3538 if (box.classList.contains('tws-comp-toast')) { seen(box, 'toast'); } 3539 } 3540 } 3541 var x = e.target.closest('[data-tws-comp-close]'); 3542 if (x) { 3543 var b = x.closest('[data-tws-comp]'); 3544 if (b) { 3545 seen(b, b.classList.contains('tws-comp-bar') ? 'bar' : 'toast'); 3546 b.remove(); 3547 } 3548 } 3549 }); 3550 document.addEventListener('click', function(e){ 3551 var t = e.target.closest('[data-tws-cp-thumb]'); 3552 if (!t) { return; } 3553 var hero = t.closest('.tws-cp-hero'), main = hero ? hero.querySelector('[data-tws-cp-main]') : null, small = t.querySelector('img'); 3554 if (!main || !small) { return; } 3555 var credit = hero.querySelector('[data-tws-cp-credit]'); 3556 var was = { src: main.getAttribute('src'), alt: main.getAttribute('alt'), credit: credit ? credit.textContent : (main.getAttribute('data-credit') || '') }; 3557 main.removeAttribute('srcset'); 3558 main.setAttribute('src', t.getAttribute('data-full') || small.getAttribute('src')); 3559 main.setAttribute('alt', small.getAttribute('alt') || ''); 3560 if (credit) { credit.textContent = t.getAttribute('data-credit') || ''; credit.hidden = !credit.textContent; } 3561 small.setAttribute('src', was.src); 3562 small.setAttribute('alt', was.alt || ''); 3563 t.setAttribute('data-full', was.src); 3564 t.setAttribute('data-credit', was.credit); 3565 }); 3566 // Side strip arrows: one picture per press; each arrow hides at its end of the strip (1.8.0). 3567 function arrows(side){
3568 var strip = side.querySelector('[data-tws-cp-strip]'), up = side.querySelector('.tws-cp-arrow--up'), down = side.querySelector('.tws-cp-arrow--down'); 3569 if (!strip || !up || !down) { return; } 3570 function state(){ 3571 up.disabled = strip.scrollTop <= 2; 3572 down.disabled = strip.scrollTop + strip.clientHeight >= strip.scrollHeight - 2; 3573 } 3574 side.addEventListener('click', function(e){ 3575 var b = e.target.closest('[data-tws-cp-scroll]'); 3576 if (!b) { return; } 3577 var first = strip.querySelector('.tws-cp-thumb'); 3578 var step = first ? first.offsetHeight + 6 : strip.clientHeight / 3; 3579 strip.scrollBy({ top: step * parseInt(b.getAttribute('data-tws-cp-scroll'), 10), behavior: 'smooth' }); 3580 }); 3581 strip.addEventListener('scroll', state, { passive: true }); 3582 state(); 3583 } 3584 document.querySelectorAll('.tws-cp-side--more').forEach(arrows); 3585 function popups(){ 3586 var mobile = window.matchMedia('(max-width: 767px)').matches, barShown = false; 3587 var bar = document.querySelector('.tws-comp-bar'); 3588 if (bar) { 3589 var last = parseInt(store.get('tws_comp_bar_' + bar.getAttribute('data-tws-comp')) || '0', 10); 3590 if (mobile) { 3591 if (Date.now() - last > 864e5) { bar.hidden = false; barShown = true; } 3592 } 3593 } 3594 if (mobile) { 3595 if (barShown) { return; } // one thing at a time on a phone 3596 } 3597 var toasts = document.querySelectorAll('.tws-comp-toast'), pick = null; 3598 for (var i = 0; i < toasts.length; i++) { 3599 if (!store.get('tws_comp_toast_' + toasts[i].getAttribute('data-tws-comp'))) { pick = toasts[i]; break; } 3600 } 3601 if (!pick) { return; } 3602 setTimeout(function(){ 3603 if (!document.body.contains(pick)) { return; } 3604 pick.hidden = false; 3605 seen(pick, 'toast'); 3606 requestAnimationFrame(function(){ pick.classList.add('is-in'); }); 3607 }, DELAY); 3608 } 3609 function go(){ tick(); popups(); setInterval(tick, 30000); } 3610 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', go); } else { go(); } 3611})(); 3612</script>
3612 3613
3613<script id="tws-comp-closed-js"> 3614(function(){ 3615 var MARK = '\u2060', WORD = 'Closed:'; 3616 function run(){ 3617 if (!document.body) { return; } 3618 var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null), hits = [], n; 3619 while ((n = walker.nextNode())) { 3620 if (n.nodeValue.indexOf(MARK + WORD) !== -1) { hits.push(n); } 3621 } 3622 hits.forEach(function(node){ 3623 var p = node.nodeValue.indexOf(MARK + WORD); 3624 var before = node.nodeValue.slice(0, p), after = node.nodeValue.slice(p + MARK.length + WORD.length); 3625 var span = document.createElement('span'); 3626 span.className = 'tws-comp-closed'; 3627 span.textContent = WORD; 3628 var frag = document.createDocumentFragment(); 3629 if (before) { frag.appendChild(document.createTextNode(before)); } 3630 frag.appendChild(span); 3631 frag.appendChild(document.createTextNode(after)); 3632 node.parentNode.replaceChild(frag, node); 3633 }); 3634 } 3635 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', run); } else { run(); } 3636})(); 3637</script>
3637 3638 <div class="tws-mp-source" hidden aria-hidden="true" data-tws-mobile-panel> 3639 3640 <div class="tws-mp-head" data-tws-mp-block="head"> 3641 <button type="button" class="tws-mp-close" data-tws-mp-close> 3642 <span class="screen-reader-text">Close menu</span> 3643 <svg viewBox="0 0 24 24" aria-hidden="true" focusable="false" 3644 fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round"> 3645 <path d="M5 5 19 19M19 5 5 19"/> 3646 </svg> 3647 </button> 3648 3649 <img width="261" height="73" class="tws-mp-logo no-lazy skip-lazy" 3650 data-no-lazy="1" 3651 loading="eager" 3652 fetchpriority="high" 3653 src="/app/uploads/sites/2/2024/11/shootinguklogo-160-1.png" 3654 alt="Gundog Journal"> 3655 </div> 3656 3657 <form class="tws-mp-search" data-tws-mp-block="search" role="search" method="get" 3658 action="https://gundog-journal.com/search/"> 3659 <svg class="tws-mp-mag" viewBox="0 0 24 24" fill="none" stroke="currentColor" 3660 stroke-width="2.2" aria-hidden="true" focusable="false"> 3661 <circle cx="10.5" cy="10.5" r="6.5"/><path d="M15.5 15.5 21 21"/> 3662 </svg> 3663 <label class="screen-reader-text" for="tws-mp-q">Search</label> 3664 <input type="search" name="_sf_s" id="tws-mp-q" autocomplete="off" 3665 placeholder="Search Gundog Journalâ¦"> 3666 <button type="submit" class="tws-mp-go">GO</button> 3667 </form> 3668 3669 <div class="tws-mp-foot" data-tws-mp-block="foot"> 3670 <a class="tws-mp-subscribe" href="https://shop.twsgroup.com/subscribe/gundog-journal"> 3671 Subscribe to Gundog Journal <small>Print & digital · TWS Shop</small> 3672 </a> 3673 3674 <p class="tws-mp-follow">Follow us</p> 3675 <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> 3676 </div> 3677 3678</div> 3679 <style id="tws-new-article-toast-css"> 3680.tws-toast { 3681 /* Accent comes from the Primary colour on Theme Settings; the two font variables are 3682 overwritten at runtime with whatever this site's own stylesheets resolve to, so nothing 3683 here needs a per-site rule. The values below are only what is used before that happens, 3684 or if font matching is switched off. */ 3685 --tws-toast-accent: #b38750; 3686 --tws-toast-heading: Georgia, 'Times New Roman', serif; 3687 --tws-toast-body: Helvetica, Arial, sans-serif; 3688 3689 position: fixed; 3690 top: calc(var(--tws-header-h, 126px) + 16px); 3691 right: 20px; 3692 width: 380px; 3693 max-width: calc(100vw - 32px); 3694 z-index: 99998; /* above the fixed header (9999), below the sticky ad (99999) */ 3695 background: #fff; 3696 border-top: 3px solid var(--tws-toast-accent); 3697 border-radius: 4px; 3698 box-shadow: 0 6px 28px rgba(0,0,0,.22), 0 1px 3px rgba(0,0,0,.12); 3699 overflow: hidden; 3700 animation: tws-toast-in .38s cubic-bezier(.16,.84,.44,1) both; 3701} 3702.tws-toast[hidden] { display: none; } 3703.tws-toast * { box-sizing: border-box; } 3704.tws-toast__inner { 3705 display: flex; 3706 gap: 12px; 3707 align-items: flex-start; 3708 padding: 12px 12px 12px 14px; 3709 text-decoration: none; 3710 color: inherit; 3711} 3712.tws-toast__inner:hover, .tws-toast__inner:focus { text-decoration: none; } 3713.tws-toast__thumb { 3714 display: block; 3715 flex: 0 0 84px; 3716 width: 84px; 3717 height: 84px; 3718 border-radius: 3px; 3719 overflow: hidden; 3720 background: #ededed; 3721} 3722/* Imagify is set to "Use <picture> tags", which rewraps images and moves the class and style 3723 onto the <picture>, leaving the <img> bare. Size the container and force both. CLAUDE.md 5.5. */ 3724.tws-toast__thumb picture, 3725.tws-toast__thumb img { 3726 display: block !important; 3727 width: 100% !important; 3728 height: 100% !important; 3729 object-fit: cover; 3730 margin: 0 !important; 3731 max-width: none !important; 3732} 3733.tws-toast__body { display: block; flex: 1 1 auto; min-width: 0; } 3734.tws-toast__eyebrow { 3735 display: inline-block; 3736 margin: 0 0 5px; 3737 font-family: var(--tws-toast-body); 3738 font-size: 10px; 3739 font-weight: 700; 3740 line-height: 1; 3741 letter-spacing: .09em; 3742 text-transform: uppercase; 3743 color: var(--tws-toast-accent); 3744} 3745.tws-toast__title { 3746 display: -webkit-box; 3747 -webkit-line-clamp: 3; 3748 -webkit-box-orient: vertical; 3749 overflow: hidden; 3750 margin: 0 0 6px; 3751 font-family: var(--tws-toast-heading); 3752 font-size: 15px; 3753 font-weight: 700; 3754 line-height: 1.34; 3755 color: #231F20; 3756} 3757.tws-toast__meta { 3758 display: block; 3759 margin: 0; 3760 font-family: var(--tws-toast-body); 3761 font-size: 11px; 3762 line-height: 1.2; 3763 color: #6b6b6b; 3764} 3765.tws-toast__meta b { color: #231F20; font-weight: 600; } 3766.tws-toast__close { 3767 position: absolute; 3768 top: 6px; 3769 right: 6px; 3770 width: 26px;
3771 height: 26px; 3772 padding: 0; 3773 border: 0; 3774 border-radius: 50%; 3775 background: rgba(255,255,255,.88); 3776 color: #6b6b6b; 3777 font: 700 17px/24px var(--tws-toast-body); 3778 cursor: pointer; 3779} 3780.tws-toast__close:hover, .tws-toast__close:focus { background: #f0f0f0; color: #231F20; } 3781@keyframes tws-toast-in { 3782 from { opacity: 0; transform: translateX(24px); } 3783 to { opacity: 1; transform: none; } 3784} 3785@keyframes tws-toast-out { 3786 from { opacity: 1; transform: none; } 3787 to { opacity: 0; transform: translateX(24px); } 3788} 3789/* Slides back out the way it came in, whether that was the timer, the close button or Escape. */ 3790.tws-toast.tws-toast--leaving { 3791 animation: tws-toast-out .32s cubic-bezier(.4,0,.7,.2) both; 3792 pointer-events: none; 3793} 3794@media (prefers-reduced-motion: reduce) { 3795 .tws-toast, .tws-toast.tws-toast--leaving { animation: none; } 3796} 3797@media (max-width: 1023px) { 3798 .tws-toast { 3799 top: calc(var(--tws-header-h, 152px) + 10px); 3800 right: 10px; 3801 left: 10px; 3802 width: auto; 3803 max-width: none; 3804 } 3805} 3806@media print { .tws-toast { display: none !important; } } 3807</style>
3808<script id="tws-new-article-toast-js"> 3809(function () { 3810 'use strict'; 3811 3812 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}; 3813 3814 if (!window.fetch || !window.sessionStorage) { return; } 3815 3816 var KEY_SINCE = 'twsToastSince'; 3817 var KEY_SHOWN = 'twsToastShown'; 3818 var KEY_SEEN = 'twsToastSeen'; 3819 3820 function store(key, value) { 3821 try { sessionStorage.setItem(key, value); } catch (e) {} 3822 } 3823 3824 function read(key, fallback) { 3825 try { 3826 var v = sessionStorage.getItem(key); 3827 return (v === null) ? fallback : v; 3828 } catch (e) { return fallback; } 3829 } 3830 3831 // The baseline is the moment the reader arrived, held for the whole session, so an 3832 // article published while they were on an earlier page still counts as new. 3833 var KEY_LAST = 'twsToastLast'; 3834 3835 var since = read(KEY_SINCE, ''); 3836 if (!since) { 3837 since = new Date().toISOString(); 3838 store(KEY_SINCE, since); 3839 } 3840 3841 var shown = parseInt(read(KEY_SHOWN, '0'), 10) || 0; 3842 var seen = []; 3843 try { seen = JSON.parse(read(KEY_SEEN, '[]')) || []; } catch (e) { seen = []; } 3844 3845 // Test mode is a "show me now" button, so make it behave like one. Everything below 3846 // that suppresses a repeat - the per-visit cap, the seen list and the minimum gap - is 3847 // correct in normal use and was quietly making the test button do nothing at all once 3848 // the newest article had been shown once in that browser session. Clearing the visit 3849 // state here means ?tws_toast_test=1 is also the reliable way to reset a session. 3850 if (CONFIG.test) { 3851 try { 3852 sessionStorage.removeItem(KEY_SHOWN); 3853 sessionStorage.removeItem(KEY_SEEN); 3854 sessionStorage.removeItem(KEY_LAST); 3855 } catch (e) {} 3856 shown = 0; 3857 seen = []; 3858 } 3859 3860 var timer = null; 3861 var current = null; 3862 var fonts = null; 3863 var hideTimer = null; 3864 var leaving = false; 3865 3866 /** 3867 * Read the site's own fonts rather than hard-coding them. 3868 * 3869 * The per-site stylesheets (shooting-times-fonts.css and the rest) target `#app h2`, 3870 * `#app p` and so on with !important, so a throwaway element placed inside #app resolves 3871 * to exactly what that site uses: Merriweather and Open Sans on ShootingUK, Oswald and 3872 * Jost on Sporting Gun, and so on. Measured once, then thrown away. Body copy is read 3873 * from a <p> rather than from <body>, because the global rule on body is Proxima Nova, 3874 * which is not what the sites actually render. 3875 */ 3876 function detectFonts() { 3877 if (fonts) { return fonts; } 3878 3879 var host = document.getElementById('app') || document.body; 3880 var probe = document.createElement('div'); 3881 3882 probe.setAttribute('aria-hidden', 'true'); 3883 probe.style.cssText = 'position:absolute!important;left:-9999px!important;top:0!important;' + 3884 'width:0!important;height:0!important;overflow:hidden!important;visibility:hidden!important;'; 3885 probe.innerHTML = '<h2 class="h2"></h2><p></p>'; 3886 3887 host.appendChild(probe); 3888 3889 var heading = ''; 3890 var body = ''; 3891 3892 try { 3893 heading = getComputedStyle(probe.children[0]).fontFamily || ''; 3894 body = getComputedStyle(probe.children[1]).fontFamily || ''; 3895 } catch (e) {} 3896 3897 probe.parentNode.removeChild(probe); 3898 3899 fonts = { 3900 heading: withFallback(heading, "Georgia, 'Times New Roman', serif"), 3901 body: withFallback(body, 'Helvetica, Arial, sans-serif') 3902 }; 3903 3904 return fonts; 3905 } 3906 3907 // Append a generic family so the card still reads properly if the site's face fails to 3908 // load, which it does on the six domains with the outstanding cross-origin font problem. 3909 function withFallback(stack, fallback) { 3910 if (!stack) { return fallback; } 3911 return /(serif|sans-serif|monospace|cursive|fantasy|system-ui|ui-\w+)\s*$/i.test(stack) 3912 ? stack 3913 : stack + ', ' + fallback; 3914 } 3915 3916 function stop() { 3917 if (timer) { clearTimeout(timer); timer = null; } 3918 } 3919 3920 function ago(iso) { 3921 var mins = Math.round((Date.now() - new Date(iso).getTime()) / 60000); 3922 if (!isFinite(mins) || mins < 1) { return 'just now'; } 3923 if (mins === 1) { return '1 minute ago'; } 3924 if (mins < 60) { return mins + ' minutes ago'; } 3925 var hrs = Math.round(mins / 60); 3926 return hrs === 1 ? '1 hour ago' : hrs + ' hours ago'; 3927 } 3928 3929 function clearHideTimer() { 3930 if (hideTimer) { clearTimeout(hideTimer); hideTimer = null; } 3931 } 3932 3933 // Restarted whenever the pointer leaves the card, so it never disappears out from 3934 // under someone who is reading it or moving the mouse towards it. 3935 function startHideTimer() { 3936 clearHideTimer(); 3937 if (CONFIG.autoHide > 0 && current && !leaving) { 3938 hideTimer = setTimeout(dismiss, CONFIG.autoHide); 3939 } 3940 } 3941 3942 function reducedMotion() { 3943 return !!(window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches); 3944 } 3945 3946 // Immediate, no animation. Used when replacing one card with another. 3947 function remove() { 3948 clearHideTimer();
3949 leaving = false; 3950 if (!current) { return; } 3951 if (current.parentNode) { current.parentNode.removeChild(current); } 3952 current = null; 3953 document.removeEventListener('keydown', onKey); 3954 } 3955 3956 function dismiss() { 3957 if (!current || leaving) { return; } 3958 3959 clearHideTimer(); 3960 3961 // Someone who has asked for less motion gets no slide, so there is no animationend 3962 // to wait for either. 3963 if (reducedMotion()) { remove(); return; } 3964 3965 leaving = true; 3966 3967 var box = current; 3968 var done = false; 3969 3970 function finish() { 3971 if (done) { return; } 3972 done = true; 3973 box.removeEventListener('animationend', finish); 3974 remove(); 3975 } 3976 3977 box.addEventListener('animationend', finish); 3978 box.classList.add('tws-toast--leaving'); 3979 3980 // Belt and braces: animationend does not fire if the tab is backgrounded mid-slide, 3981 // or if the animation is suppressed after the class is added. 3982 setTimeout(finish, 700); 3983 } 3984 3985 function onKey(e) { 3986 if (e.key === 'Escape' || e.key === 'Esc') { dismiss(); } 3987 } 3988 3989 function show(data) { 3990 remove(); 3991 3992 var box = document.createElement('div'); 3993 box.className = 'tws-toast'; 3994 box.setAttribute('role', 'status'); 3995 box.setAttribute('aria-live', 'polite'); 3996 3997 if (CONFIG.matchFonts) { 3998 var f = detectFonts(); 3999 box.style.setProperty('--tws-toast-heading', f.heading); 4000 box.style.setProperty('--tws-toast-body', f.body); 4001 } 4002 4003 var close = document.createElement('button'); 4004 close.type = 'button'; 4005 close.className = 'tws-toast__close'; 4006 close.setAttribute('aria-label', 'Dismiss this notification'); 4007 close.innerHTML = '×'; 4008 close.addEventListener('click', dismiss); 4009 4010 var link = document.createElement('a'); 4011 link.className = 'tws-toast__inner'; 4012 link.href = data.url; 4013 4014 if (data.thumb) { 4015 var thumb = document.createElement('span'); 4016 thumb.className = 'tws-toast__thumb'; 4017 var img = document.createElement('img'); 4018 img.src = data.thumb; 4019 img.alt = ''; 4020 img.loading = 'lazy'; 4021 thumb.appendChild(img); 4022 link.appendChild(thumb); 4023 } 4024 4025 var body = document.createElement('span'); 4026 body.className = 'tws-toast__body'; 4027 4028 var eyebrow = document.createElement('span'); 4029 eyebrow.className = 'tws-toast__eyebrow'; 4030 eyebrow.textContent = CONFIG.eyebrow; 4031 4032 var title = document.createElement('span'); 4033 title.className = 'tws-toast__title'; 4034 // textContent, not innerHTML: the title arrives decoded and is never treated as markup. 4035 title.textContent = data.title; 4036 4037 var meta = document.createElement('span'); 4038 meta.className = 'tws-toast__meta'; 4039 if (data.category) { 4040 var cat = document.createElement('b'); 4041 cat.textContent = data.category; 4042 meta.appendChild(cat); 4043 meta.appendChild(document.createTextNode(' ·  ')); 4044 } 4045 meta.appendChild(document.createTextNode(ago(data.date_gmt))); 4046 4047 body.appendChild(eyebrow); 4048 body.appendChild(title); 4049 body.appendChild(meta); 4050 link.appendChild(body); 4051 4052 box.appendChild(close); 4053 box.appendChild(link); 4054 document.body.appendChild(box); 4055 4056 current = box; 4057 document.addEventListener('keydown', onKey); 4058 4059 box.addEventListener('mouseenter', clearHideTimer); 4060 box.addEventListener('mouseleave', startHideTimer); 4061 box.addEventListener('focusin', clearHideTimer); 4062 box.addEventListener('focusout', startHideTimer); 4063 4064 startHideTimer(); 4065 } 4066 4067 function check() { 4068 if (!CONFIG.test && shown >= CONFIG.max) { stop(); return; } 4069 4070 // Query string is deliberately unique per request: WP Rocket and LiteSpeed both sit in 4071 // front of PHP, and a cached "latest" would be wrong for as long as it lived. 4072 var url = CONFIG.endpoint 4073 + (CONFIG.endpoint.indexOf('?') === -1 ? '?' : '&') 4074 + 'since=' + encodeURIComponent(since) 4075 + '&_=' + Date.now() 4076 + (CONFIG.test ? '&test=1' : ''); 4077 4078 fetch(url, { credentials: 'same-origin', cache: 'no-store' }) 4079 .then(function (r) { return r.ok ? r.json() : null; }) 4080 .then(function (data) { 4081 if (!data || !data['new'] || !data.url) { return; } 4082 if (!CONFIG.test && seen.indexOf(data.id) !== -1) { return; } 4083 4084 // Now that more than one card can appear in a visit, keep them apart. Without 4085 // this, a card shown just before the reader clicked to another page would be 4086 // followed by a second one seconds later on the next page's load check, which 4087 // reads as rapid-fire rather than as a useful alert. Nothing is marked seen and 4088 // the baseline is not moved, so this article is still eligible on a later poll. 4089 if (!CONFIG.test && CONFIG.minGap > 0) { 4090 var last = parseInt(read(KEY_LAST, '0'), 10) || 0; 4091 if (last && (Date.now() - last) < CONFIG.minGap) { return; } 4092 } 4093 4094 // Nothing is recorded during a test, so testing never leaves the visit in a 4095 // state where the real thing is then suppressed. 4096 if (!CONFIG.test) { 4097 seen.push(data.id); 4098 store(KEY_SEEN, JSON.stringify(seen.slice(-30))); 4099 4100 shown += 1; 4101 store(KEY_SHOWN, String(shown));
4102 store(KEY_LAST, String(Date.now())); 4103 4104 // Move the baseline on so the next poll only looks for something newer still. 4105 if (data.date_gmt) { 4106 since = data.date_gmt; 4107 store(KEY_SINCE, since); 4108 } 4109 } 4110 4111 show(data); 4112 4113 if (!CONFIG.test && shown >= CONFIG.max) { stop(); } 4114 }) 4115 .catch(function () { /* a failed poll is not worth telling the reader about */ }); 4116 } 4117 4118 function schedule() { 4119 stop(); 4120 if (shown >= CONFIG.max) { return; } 4121 timer = setTimeout(function () { 4122 schedule(); 4123 if (!document.hidden) { check(); } 4124 }, CONFIG.interval); 4125 } 4126 4127 function start() { 4128 if (CONFIG.test) { check(); } 4129 4130 // Check shortly after load as well as on the interval. The baseline lives in 4131 // sessionStorage and spans the whole visit, so this is the moment that actually 4132 // catches "published since you arrived". Without it a reader who moves to a new 4133 // page every minute resets the timer before it ever reaches the interval, and on a 4134 // news site that means the card may never appear at all. Two seconds keeps it off 4135 // the critical render path. 4136 setTimeout(function () { 4137 if (!document.hidden && shown < CONFIG.max) { check(); } 4138 }, 2000); 4139 4140 schedule(); 4141 4142 // Nothing is polled while the tab is in the background; check once on return instead. 4143 document.addEventListener('visibilitychange', function () { 4144 if (!document.hidden && shown < CONFIG.max) { check(); } 4145 }); 4146 } 4147 4148 if (document.readyState === 'loading') { 4149 document.addEventListener('DOMContentLoaded', start); 4150 } else { 4151 start(); 4152 } 4153}()); 4154</script>
4154 4155
4155<script id="twsnl-sub-js"> 4156(function () { 4157 'use strict'; 4158 4159 var COMPACT = true; 4160 4161 function ready(fn) { 4162 if (document.readyState !== 'loading') { fn(); } 4163 else { document.addEventListener('DOMContentLoaded', fn); } 4164 } 4165 4166 ready(function () { 4167 var groups = [].slice.call(document.querySelectorAll('[data-twsnl-sub]')); 4168 if (!groups.length) { return; } 4169 4170 var header = document.getElementById('header'); 4171 4172 function flagOpen() { 4173 if (!header) { return; } 4174 header.classList.toggle('twsnl-sub-open', groups.some(function (g) { 4175 var dd = g.querySelector('[data-twsnl-sub-dd]'); 4176 return dd && !dd.hidden; 4177 })); 4178 } 4179 4180 function close(group) { 4181 var btn = group.querySelector('[data-twsnl-sub-btn]'); 4182 var dd = group.querySelector('[data-twsnl-sub-dd]'); 4183 if (!btn || !dd || dd.hidden) { return; } 4184 dd.hidden = true; 4185 btn.setAttribute('aria-expanded', 'false'); 4186 flagOpen(); 4187 } 4188 4189 function open(group) { 4190 var btn = group.querySelector('[data-twsnl-sub-btn]'); 4191 var dd = group.querySelector('[data-twsnl-sub-dd]'); 4192 if (!btn || !dd) { return; } 4193 dd.hidden = false; 4194 btn.setAttribute('aria-expanded', 'true'); 4195 flagOpen(); 4196 } 4197 4198 function closeAll(except) { 4199 groups.forEach(function (g) { if (g !== except) { close(g); } }); 4200 } 4201 4202 function rows(dd) { 4203 return [].slice.call(dd.querySelectorAll('.twsnl-sub-row')).filter(function (a) { 4204 return a.offsetParent !== null; 4205 }); 4206 } 4207 4208 groups.forEach(function (group) { 4209 var btn = group.querySelector('[data-twsnl-sub-btn]'); 4210 var dd = group.querySelector('[data-twsnl-sub-dd]'); 4211 if (!btn || !dd) { return; } 4212 4213 btn.addEventListener('click', function (e) { 4214 e.preventDefault(); 4215 e.stopPropagation(); 4216 var wasOpen = dd.hidden === false; 4217 closeAll(group); 4218 if (wasOpen) { close(group); } else { open(group); } 4219 }); 4220 4221 btn.addEventListener('keydown', function (e) { 4222 if (e.key !== 'ArrowDown') { return; } 4223 e.preventDefault(); 4224 if (dd.hidden) { open(group); } 4225 (rows(dd)[0] || btn).focus(); 4226 }); 4227 4228 dd.addEventListener('keydown', function (e) { 4229 if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp') { return; } 4230 var items = rows(dd); 4231 var i = items.indexOf(document.activeElement); 4232 if (i === -1) { return; } 4233 e.preventDefault(); 4234 var next = e.key === 'ArrowDown' ? i + 1 : i - 1; 4235 if (next < 0) { btn.focus(); return; } 4236 if (next >= items.length) { next = items.length - 1; } 4237 items[next].focus(); 4238 }); 4239 4240 dd.addEventListener('click', function (e) { e.stopPropagation(); }); 4241 }); 4242 4243 document.addEventListener('click', function () { closeAll(null); }); 4244 4245 document.addEventListener('keydown', function (e) { 4246 if (e.key !== 'Escape' && e.key !== 'Esc') { return; } 4247 groups.forEach(function (g) { 4248 var dd = g.querySelector('[data-twsnl-sub-dd]'); 4249 if (dd && !dd.hidden) { 4250 close(g); 4251 var btn = g.querySelector('[data-twsnl-sub-btn]'); 4252 if (btn) { btn.focus(); } 4253 } 4254 }); 4255 }); 4256 4257 if (!COMPACT || !header) { return; } 4258 4259 var compact = false; 4260 var ticking = false; 4261 4262 function measure() { 4263 var y = window.pageYOffset || document.documentElement.scrollTop || 0; 4264 var want = y > 60; 4265 if (want !== compact) { 4266 compact = want; 4267 header.classList.toggle('twsnl-hdr-compact', compact); 4268 // never leave a panel hanging off a row that is rolling away 4269 if (compact) { closeAll(null); } 4270 } 4271 ticking = false; 4272 } 4273 4274 window.addEventListener('scroll', function () { 4275 if (ticking) { return; } 4276 ticking = true; 4277 window.requestAnimationFrame(measure); 4278 }, { passive: true }); 4279 4280 measure(); 4281 }); 4282})(); 4283</script>
4283 4284 <div class="tws-is-dim" aria-hidden="true"></div>
4285<script id="tws-search-and-display-js"> 4286(function () { 4287 'use strict'; 4288 4289 var CFG = {"index":"https://gundog-journal.com/app/uploads/sites/2/tws-search-and-display/index.json","indexV":"1790919963","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}; 4290 var panels = [].slice.call(document.querySelectorAll('[data-tws-is]')); 4291 4292 if (!panels.length) { return; } 4293 4294 var MONTHS = ['January','February','March','April','May','June','July','August','September','October','November','December']; 4295 var DATA = null; // { c: categories, a: authors, r: rows } 4296 var HAY = null; // lowercased "title category author" per row, built once 4297 var loading = null; // the in-flight fetch, so two panels share one request 4298 4299 // idle | loading | ready | failed. This exists to make failure TERMINAL. 4300 // 4301 // v1.0.0 had no such flag: render() saw a null DATA, called load(), and re-rendered in 4302 // the .then(). When the fetch failed DATA stayed null, so that re-render took the same 4303 // branch and scheduled another one. Promise callbacks are microtasks, and a microtask 4304 // that queues a microtask never yields to the event loop - the tab wedges completely, 4305 // with no chance even to paint. That is the "Page Unresponsive" dialogue, and it fired 4306 // at exactly two characters because that is the first keystroke that looks at the index. 4307 // Once the state is 'failed' nothing calls load() again. 4308 var state = 'idle'; 4309 4310 // The index URL is assembled here rather than printed whole into the page, so no complete 4311 // URL for the JSON ever appears in the HTML for a crawler to find. See index_base_url(). 4312 var INDEX_URL = CFG.index + (CFG.indexV ? '?v=' + encodeURIComponent(CFG.indexV) : ''); 4313 4314 /* ---------- data ---------- */ 4315 4316 function fail(why) { 4317 state = 'failed'; 4318 4319 if (window.console && console.warn) { 4320 console.warn('[TWS Search & Display] index unavailable (' + why + '): ' + INDEX_URL 4321 + ' â the panel has fallen back to the full search page. Open that URL directly to see what the server returns.'); 4322 } 4323 4324 return null; 4325 } 4326 4327 function load() { 4328 // Terminal states answer immediately and never re-enter the fetch. 4329 if (state === 'ready' || state === 'failed') { return Promise.resolve(DATA); } 4330 if (loading) { return loading; } 4331 4332 state = 'loading'; 4333 4334 loading = fetch(INDEX_URL, { credentials: 'same-origin' }) 4335 .then(function (r) { return r.ok ? r.json() : fail('HTTP ' + r.status); }) 4336 .then(function (json) { 4337 if (!json) { return null; } 4338 if (!json.r || !json.r.length) { return fail('empty index'); } 4339 4340 DATA = json; 4341 HAY = json.r.map(function (row) { 4342 return (row[0] + ' ' + (json.c[row[3]] || '') + ' ' + (json.a[row[4]] || '')).toLowerCase(); 4343 }); 4344 4345 state = 'ready'; 4346 4347 return DATA; 4348 }) 4349 .catch(function (e) { return fail(e && e.message ? e.message : 'network or parse error'); }); 4350 4351 return loading; 4352 } 4353 4354 /* ---------- searching ---------- */ 4355 4356 function search(q, limit) { 4357 if (!DATA || !HAY) { return { total: 0, rows: [] }; } 4358 4359 var words = q.toLowerCase().split(/\s+/).filter(Boolean); 4360 if (!words.length) { return { total: 0, rows: [] }; } 4361 4362 var out = []; 4363 var i, j, ok, hay; 4364 4365 // Rows are already newest first, so an ordinary scan is also a recency sort. 4366 // Scanning all 12,000 rows measures 1-6ms even on a throttled phone, so there is no 4367 // index structure to justify here. 4368 for (i = 0; i < HAY.length; i++) { 4369 hay = HAY[i]; 4370 ok = true; 4371 4372 for (j = 0; j < words.length; j++) { 4373 if (hay.indexOf(words[j]) === -1) { ok = false; break; } 4374 } 4375 4376 if (!ok) { continue; } 4377 4378 out.push(i); 4379 } 4380 4381 // NEWEST FIRST, always. This used to rank by where the word fell in the title, which 4382 // could put a three-year-old fly-tying guide above this morning's news for the same 4383 // search - not what a magazine's reader expects from a box that sits in the masthead. 4384 // Field 5 is the date as YYYY-MM-DD, so a plain string compare sorts it correctly, 4385 // and the index is written newest first (and patched back into date order), so this 4386 // is usually confirming an order the scan already produced. 4387 out.sort(function (a, b) { 4388 var da = DATA.r[a][5] || ''; 4389 var db = DATA.r[b][5] || ''; 4390 4391 if (da === db) { return a - b; } 4392 4393 return da < db ? 1 : -1; 4394 }); 4395 4396 // The total is what goes in the "11 matches" line, so it has to be counted before 4397 // the list is cut down to the handful actually shown. 4398 return { total: out.length, rows: out.slice(0, limit).map(function (i) { return row(i); }) }; 4399 } 4400 4401 // Three shapes have to work: an absolute URL, a root-relative path (which is what this 4402 // network's WordPress actually returns), and a path relative to the uploads folder. The 4403 // root-relative case is why thumbnails were broken - pasting the uploads base in front 4404 // of a path that already began with /app/uploads produced a doubled URL. Handling it 4405 // here means indexes built before the fix start working without a rebuild. 4406 function thumbUrl(v) { 4407 if (!v) { return ''; } 4408 if (/^https?:\/\//.test(v)) { return v; } 4409 if (v.charAt(0) === '/') { return location.origin + v; } 4410 4411 return CFG.uploads + v; 4412 } 4413 4414 function row(i) { 4415 var r = DATA.r[i]; 4416 4417 return { 4418 title: r[0], 4419 url: CFG.home + r[1], 4420 thumb: thumbUrl(r[2]), 4421 cat: DATA.c[r[3]] || '', 4422 author: DATA.a[r[4]] || '', 4423 date: r[5] 4424 }; 4425 } 4426 4427 /* ---------- rendering ---------- */ 4428 4429 function esc(s) { 4430 return String(s).replace(/[&<>"']/g, function (c) { 4431 return { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[c]; 4432 }); 4433 } 4434 4435 // Highlight after escaping, never before, so a title can never inject markup. 4436 function mark(text, q) { 4437 var safe = esc(text);
4438 var words = q.trim().split(/\s+/).filter(Boolean).map(function (w) { 4439 return esc(w).replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); 4440 }); 4441 4442 if (!words.length) { return safe; } 4443 4444 try { 4445 return safe.replace(new RegExp('(' + words.join('|') + ')', 'gi'), '<mark>$1</mark>'); 4446 } catch (e) { 4447 return safe; 4448 } 4449 } 4450 4451 function pretty(iso) { 4452 var p = /^(\d{4})-(\d{2})-(\d{2})/.exec(iso || ''); 4453 if (!p) { return ''; } 4454 4455 return parseInt(p[3], 10) + ' ' + MONTHS[parseInt(p[2], 10) - 1] + ' ' + p[1]; 4456 } 4457 4458 function resultsWanted() { 4459 return window.matchMedia('(max-width: 1023px)').matches ? CFG.resultsM : CFG.results; 4460 } 4461 4462 function searchUrl(q) { 4463 return CFG.search + '?' + CFG.param + '=' + encodeURIComponent(q); 4464 } 4465 4466 // Tell the search log what was typed when a quick match is opened. That search never 4467 // reaches the results page, so nothing else would count it. sendBeacon survives the 4468 // page unloading and the reader waits for nothing; if it is missing, nothing is sent. 4469 function logPick(q) { 4470 q = String(q || '').trim(); 4471 if (!CFG.logUrl || q.length < 3 || !navigator.sendBeacon) { return; } 4472 try { 4473 var fd = new FormData(); 4474 fd.append('term', q); 4475 navigator.sendBeacon(CFG.logUrl, fd); 4476 } catch (err) { /* never block the click */ } 4477 } 4478 4479 function renderTrending(panel) { 4480 if (!CFG.trending.length) { panel.body.innerHTML = ''; return; } 4481 4482 panel.body.innerHTML = '<div class="tws-is-empty"><h4>Trending on ' + esc(CFG.brand) + '</h4>' 4483 + '<div class="tws-is-chips">' 4484 + CFG.trending.map(function (t) { return '<button type="button" class="tws-is-chip">' + esc(t) + '</button>'; }).join('') 4485 + '</div></div>'; 4486 4487 [].slice.call(panel.body.querySelectorAll('.tws-is-chip')).forEach(function (chip) { 4488 chip.addEventListener('click', function (e) { 4489 // This handler is about to delete the element the event came from, so stop 4490 // it here rather than letting a detached target travel up the tree. 4491 e.preventDefault(); 4492 e.stopPropagation(); 4493 4494 panel.input.value = chip.textContent; 4495 panel.input.focus(); 4496 render(panel); 4497 }); 4498 }); 4499 } 4500 4501 function render(panel) { 4502 var q = panel.input.value.trim(); 4503 4504 panel.clear.hidden = !q; 4505 panel.active = -1; 4506 4507 if (q.length < 2) { renderTrending(panel); return; } 4508 4509 // Terminal: the index could not be loaded, so offer the full search and stop. No 4510 // load(), no re-render, therefore no way back into the loop described above. 4511 if (state === 'failed') { 4512 panel.body.innerHTML = '<div class="tws-is-note">Press Enter to search for â<b>' + esc(q) + '</b>â.</div>' 4513 + '<a class="tws-is-viewall" href="' + esc(searchUrl(q)) + '">Search ' + esc(CFG.brand) + ' for â' + esc(q) + 'â</a>'; 4514 return; 4515 } 4516 4517 if (!DATA) { 4518 panel.body.innerHTML = '<div class="tws-is-note">Searchingâ¦</div>'; 4519 4520 load().then(function () { 4521 // Only re-render once the state is settled, and only if the reader has not 4522 // typed on. Either branch below is terminal, so this cannot recurse. 4523 if (state !== 'ready' && state !== 'failed') { return; } 4524 if (panel.input.value.trim() !== q) { return; } 4525 4526 render(panel); 4527 }); 4528 4529 return; 4530 } 4531 4532 var found = search(q, resultsWanted()); 4533 var hits = found.rows; 4534 4535 if (!hits.length) { 4536 panel.body.innerHTML = '<div class="tws-is-note">No quick matches for â<b>' + esc(q) + '</b>â â press Enter to search everything.</div>' 4537 + '<a class="tws-is-viewall" href="' + esc(searchUrl(q)) + '">Search all of ' + esc(CFG.brand) + ' for â' + esc(q) + 'â</a>'; 4538 return; 4539 } 4540 4541 var hint = CFG.hint 4542 ? '<span class="tws-is-kbd"><kbd>â</kbd> <kbd>â</kbd> to move <kbd>Enter</kbd> to open</span>' 4543 : '<span></span>'; 4544 4545 // "quick matches", not "matches". This panel searches titles, categories and authors 4546 // in the index; the results page runs Relevanssi over the whole article text and will 4547 // usually find more, so the wording must not promise a number the next page contradicts. 4548 // No number. The panel shows five rows, so "152 quick matches" above five results 4549 // reads as a miscount even though it is the honest size of the filtered set. The 4550 // button underneath is what offers the rest. 4551 panel.body.innerHTML = '<div class="tws-is-meta"><span>Quick matches</span>' + hint + '</div>' 4552 + '<ul class="tws-is-results">' 4553 + hits.map(function (r) { 4554 return '<li class="tws-is-item"><a href="' + esc(r.url) + '">' 4555 + '<span class="tws-is-thumb">' + (r.thumb ? '<img src="' + esc(r.thumb) + '" alt="" loading="lazy" decoding="async">' : '') + '</span>' 4556 + '<span class="tws-is-text">' 4557 + (r.cat ? '<span class="tws-is-cat">' + esc(r.cat) + '</span>' : '') 4558 + '<span class="tws-is-title">' + mark(r.title, q) + '</span>' 4559 + '<span class="tws-is-byline">' + (r.author ? 'By <b>' + mark(r.author, q) + '</b> · ' : '') + esc(pretty(r.date)) + '</span>' 4560 + '</span></a></li>'; 4561 }).join('') 4562 + '</ul>' 4563 + '<a class="tws-is-viewall" href="' + esc(searchUrl(q)) + '">' 4564 + 'Search everything for â' + esc(q) + 'â' 4565 + '</a>'; 4566 } 4567 4568 /* ---------- keyboard ---------- */ 4569 4570 function setActive(panel, i) { 4571 var items = [].slice.call(panel.body.querySelectorAll('.tws-is-item')); 4572 if (!items.length) { return; } 4573 4574 panel.active = (i + items.length) % items.length; 4575
4576 items.forEach(function (el, j) { el.classList.toggle('is-active', j === panel.active); }); 4577 items[panel.active].scrollIntoView({ block: 'nearest' }); 4578 } 4579 4580 function onKey(panel, e) { 4581 var items = panel.body.querySelectorAll('.tws-is-item a'); 4582 4583 if (e.key === 'ArrowDown') { e.preventDefault(); setActive(panel, panel.active + 1); } 4584 else if (e.key === 'ArrowUp') { e.preventDefault(); setActive(panel, panel.active - 1); } 4585 else if (e.key === 'Enter') { 4586 e.preventDefault(); 4587 4588 if (panel.active > -1 && items[panel.active]) { logPick(panel.input.value); window.location.href = items[panel.active].href; } 4589 else if (panel.input.value.trim()) { window.location.href = searchUrl(panel.input.value.trim()); } 4590 } 4591 } 4592 4593 /* ---------- open and close ---------- */ 4594 4595 // Alpine owns the dropdowns; this only mirrors their state onto <body> so the dim can 4596 // show, and offers Escape and click-outside by clicking the theme's own toggle button. 4597 var dropdowns = [].slice.call(document.querySelectorAll('.desktop-search-dropdown, .mobile-search-dropdown')); 4598 var toggles = [].slice.call(document.querySelectorAll('.header-search-wrapper button, button.lg\\:hidden')) 4599 .filter(function (b) { return b.querySelector('svg circle'); }); 4600 4601 function anyOpen() { 4602 return dropdowns.some(function (d) { 4603 return d.offsetParent !== null && d.getBoundingClientRect().height > 4; 4604 }); 4605 } 4606 4607 var lastOpen = null; 4608 var syncQueued = false; 4609 4610 // Alpine's x-collapse writes an inline height on the dropdown on every animation frame, 4611 // so the observer below can fire dozens of times per open. Coalescing to one frame and 4612 // bailing when nothing actually changed keeps that from turning into a layout storm. 4613 function syncState() { 4614 if (syncQueued) { return; } 4615 4616 syncQueued = true; 4617 4618 (window.requestAnimationFrame || function (f) { setTimeout(f, 16); })(function () { 4619 syncQueued = false; 4620 applyState(); 4621 }); 4622 } 4623 4624 function applyState() { 4625 var open = anyOpen(); 4626 4627 if (open === lastOpen) { return; } 4628 4629 lastOpen = open; 4630 4631 document.body.classList.toggle('tws-is-open', open); 4632 4633 if (open) { 4634 var visible = panels.filter(function (p) { return p.el && p.input && p.el.offsetParent !== null; })[0]; 4635 4636 if (visible && document.activeElement !== visible.input) { 4637 setTimeout(function () { try { visible.input.focus(); } catch (e) {} }, 60); 4638 } 4639 } 4640 } 4641 4642 function closeAll() { 4643 if (!anyOpen()) { return; } 4644 4645 // Clicking the theme's own button keeps Alpine's `expanded` in step. Setting the 4646 // style directly would leave Alpine thinking the panel was still open. 4647 toggles.forEach(function (b) { if (b.offsetParent !== null) { b.click(); } }); 4648 4649 setTimeout(applyState, 60); 4650 } 4651 4652 if (window.MutationObserver && dropdowns.length) { 4653 var mo = new MutationObserver(function () { syncState(); }); 4654 4655 dropdowns.forEach(function (d) { 4656 mo.observe(d, { attributes: true, attributeFilter: ['style', 'class', 'hidden'] }); 4657 }); 4658 } 4659 4660 toggles.forEach(function (b) { 4661 b.addEventListener('click', function () { 4662 setTimeout(applyState, 30); 4663 load(); 4664 }); 4665 }); 4666 4667 document.addEventListener('keydown', function (e) { 4668 if (e.key === 'Escape') { closeAll(); } 4669 }); 4670 4671 // CAPTURE phase, deliberately. 4672 // 4673 // Clicking a trending chip replaces the panel's innerHTML, which destroys the chip. By 4674 // the time a bubbling listener on document ran, e.target was an element detached from 4675 // the DOM, so closest('[data-tws-is]') returned null, the "was the click inside the 4676 // panel?" guard failed, and the panel closed itself the instant a chip was clicked. 4677 // Running in the capture phase means this decision is made on the way DOWN, before any 4678 // handler has had the chance to re-render. The isConnected check is the second belt: a 4679 // target that is no longer in the document cannot meaningfully be outside the panel. 4680 document.addEventListener('click', function (e) { 4681 if (!document.body.classList.contains('tws-is-open')) { return; } 4682 if (!e.target || !e.target.isConnected) { return; } 4683 if (e.target.closest('[data-tws-is]') || e.target.closest('.header-search-wrapper')) { return; } 4684 if (toggles.some(function (b) { return b.contains(e.target); })) { return; } 4685 4686 closeAll(); 4687 }, true); 4688 4689 /* ---------- wire up ---------- */ 4690 4691 panels = panels.map(function (el) { 4692 var panel = { 4693 el: el,
4694 input: el.querySelector('.tws-is-input'), 4695 clear: el.querySelector('.tws-is-clear'), 4696 body: el.querySelector('.tws-is-body'), 4697 active: -1, 4698 timer: null 4699 }; 4700 4701 if (!panel.input || !panel.body) { return panel; } 4702 4703 panel.input.addEventListener('input', function () { 4704 clearTimeout(panel.timer); 4705 panel.timer = setTimeout(function () { render(panel); }, 120); 4706 }); 4707 4708 panel.input.addEventListener('focus', load); 4709 panel.input.addEventListener('keydown', function (e) { onKey(panel, e); }); 4710 4711 // A quick match opened with the mouse or a tap (Enter is handled in onKey). 4712 panel.body.addEventListener('click', function (e) { 4713 var a = e.target && e.target.closest ? e.target.closest('.tws-is-item a') : null; 4714 if (a) { logPick(panel.input.value); } 4715 }); 4716 4717 panel.clear.addEventListener('click', function () { 4718 panel.input.value = ''; 4719 panel.input.focus(); 4720 render(panel); 4721 }); 4722 4723 renderTrending(panel); 4724 4725 return panel; 4726 }); 4727 4728 // A one-line diagnostic, so "is the index actually loading?" can be answered from the 4729 // browser console on any site without adding a debug mode: window.TWS_IS.state() 4730 window.TWS_IS = { 4731 state: function () { return state; }, 4732 url: INDEX_URL, 4733 count: function () { return DATA && DATA.r ? DATA.r.length : 0; }, 4734 reload: function () { state = 'idle'; loading = null; DATA = null; HAY = null; return load(); } 4735 }; 4736 4737 // Fetching on idle rather than on click is what makes the first search feel instant: 4738 // the file is already in memory before anyone reaches for the magnifier. 4739 if (CFG.prefetch) { 4740 if (window.requestIdleCallback) { requestIdleCallback(load, { timeout: 4000 }); } 4741 else { setTimeout(load, 2500); } 4742 } 4743 4744 applyState(); 4745})(); 4746</script>
4746 4747
4747<script id="tws-nav-subcategories-helper"> 4748(function () { 4749 var SEL = '#mega-menu-primary_navigation > li.mega-menu-flyout.mega-menu-item-has-children,' 4750 + '#mega-menu-primary_navigation > li.mega-menu-flyout.menu-item-has-children'; 4751 4752 function items() { return document.querySelectorAll(SEL); } 4753 4754 function sync(li) { 4755 var panel = li.querySelector(':scope > ul'); 4756 var bar = li.closest('#header') || li.closest('.nav-header-main'); 4757 4758 if (bar) { 4759 var drop = Math.round(bar.getBoundingClientRect().bottom - li.getBoundingClientRect().top); 4760 if (drop > 0) { li.style.setProperty('--tws-subs-top', drop + 'px'); } 4761 } 4762 4763 if (!panel || window.innerWidth < 1024) { return; } 4764 4765 panel.classList.remove('tws-subs-flip'); 4766 4767 var width = panel.offsetWidth; 4768 var left = li.getBoundingClientRect().left; 4769 4770 // A zero reading means the panel has no layout yet. Leave it alone. 4771 if (!width) { return; } 4772 4773 if (left + width > window.innerWidth - 16) { 4774 panel.classList.add('tws-subs-flip'); 4775 } 4776 } 4777 4778 function syncAll() { 4779 Array.prototype.forEach.call(items(), sync); 4780 } 4781 4782 function bind() { 4783 Array.prototype.forEach.call(items(), function (li) { 4784 ['mouseenter', 'focusin', 'touchstart'].forEach(function (ev) { 4785 li.addEventListener(ev, function () { sync(li); }, { passive: true }); 4786 }); 4787 }); 4788 syncAll(); 4789 } 4790 4791 if (document.readyState !== 'loading') { bind(); } 4792 else { document.addEventListener('DOMContentLoaded', bind); } 4793 4794 var timer; 4795 window.addEventListener('resize', function () { 4796 clearTimeout(timer); 4797 timer = setTimeout(syncAll, 150); 4798 }); 4799})(); 4800</script>
4800 4801
4801<script id="tws-mobile-panel-script"> 4802(function () { 4803 var SRC = '.tws-mp-source[data-tws-mobile-panel]'; 4804 4805 function mobilePanel() { 4806 var wraps = document.querySelectorAll('[id^="mega-menu-wrap-"]'); 4807 4808 for (var i = 0; i < wraps.length; i++) { 4809 if (wraps[i].closest && wraps[i].closest('.mega-menu-mobile-toggle')) { 4810 return wraps[i].querySelector('ul.mega-menu'); 4811 } 4812 } 4813 4814 // No mobile toggle found. The last wrap on the page is the mobile one in 4815 // every template on this network, so fall back to it rather than giving up. 4816 return wraps.length ? wraps[wraps.length - 1].querySelector('ul.mega-menu') : null; 4817 } 4818 4819 function row(className, node) { 4820 var li = document.createElement('li'); 4821 li.className = 'tws-mp-item ' + className; 4822 li.appendChild(node); 4823 return li; 4824 } 4825 4826 function build() { 4827 var src = document.querySelector(SRC); 4828 if (!src) { return; } 4829 4830 var ul = mobilePanel(); 4831 if (!ul || ul.querySelector('.tws-mp-item')) { return; } 4832 4833 var head = src.querySelector('[data-tws-mp-block="head"]'); 4834 var search = src.querySelector('[data-tws-mp-block="search"]'); 4835 var foot = src.querySelector('[data-tws-mp-block="foot"]'); 4836 4837 // Search first, then the title in front of it, so the title ends up on top 4838 // without needing to know whether the other one is present. 4839 if (search) { ul.insertBefore(row('tws-mp-item-search', search), ul.firstChild); } 4840 if (head) { ul.insertBefore(row('tws-mp-item-head', head), ul.firstChild); } 4841 if (foot) { ul.appendChild(row('tws-mp-item-foot', foot)); } 4842 4843 /* Our close button forwards to Mega Menu's, rather than trying to close the 4844 panel itself, so whatever else that button does - focus, body class, 4845 animation state - still happens. The toggle is the fallback: clicking it 4846 while the panel is open closes it too. */ 4847 var close = ul.querySelector('[data-tws-mp-close]'); 4848 4849 if (close) { 4850 close.addEventListener('click', function (e) { 4851 e.preventDefault(); 4852 4853 var wrap = ul.parentElement; 4854 var real = wrap ? wrap.querySelector('button.mega-close') : null; 4855 var toggle = wrap ? wrap.querySelector('.mega-menu-toggle') : null; 4856 4857 if (real) { real.click(); } 4858 else if (toggle) { toggle.click(); } 4859 }); 4860 } 4861 4862 /* If a lazy loader has swapped the logo's src out anyway - a setting 4863 change, a different plugin, a cached page built before the attributes 4864 above were added - put the real one back. Harmless when it has not. */ 4865 var logo = ul.querySelector('.tws-mp-logo[data-lazy-src]'); 4866 4867 if (logo && logo.getAttribute('data-lazy-src')) { 4868 logo.setAttribute('src', logo.getAttribute('data-lazy-src')); 4869 logo.removeAttribute('data-lazy-src'); 4870 } 4871 4872 /* Only now is it safe for the stylesheet to retire Mega Menu's own close 4873 button and reclaim the padding that was reserved for it. If anything 4874 above failed, this class is never added and the panel keeps working the 4875 way it does without this plugin. */ 4876 if (head && close) { ul.classList.add('tws-mp-built'); } 4877 } 4878 4879 /* The header's own search button sits above the open panel, so its magnifier 4880 shows through over the menu. It cannot be picked out by CSS: the desktop 4881 and mobile search buttons are identical apart from a responsive utility 4882 class, and the burger and close button are buttons too. Script can tell 4883 them apart, so it marks them here and the stylesheet does the rest, inside 4884 the media query, leaving the desktop header alone. 4885 4886 Both search buttons are marked. The desktop one is already off the page 4887 under 1024px, so hiding it as well costs nothing and saves having to work 4888 out which row each button belongs to. */ 4889 function markHeaderSearch() { 4890 var header = document.getElementById('header'); 4891 if (!header) { return; } 4892 4893 var buttons = header.querySelectorAll('button'); 4894 4895 for (var i = 0; i < buttons.length; i++) { 4896 var b = buttons[i]; 4897 if (b.closest('[id^="mega-menu-wrap-"]')) { continue; } 4898 if (!b.querySelector('svg')) { continue; } 4899 b.classList.add('tws-mp-header-search'); 4900 } 4901 } 4902 4903 /* Match the header's search icon to the burger, on light headers only. 4904 Both the header background and the burger colour are read from the page 4905 rather than written down here: the header is white on six sites and
4906 #231F20 on Shooting UK, and the burger is #ddd on five, black on 4907 Trout & Salmon. Anything that cannot be read confidently is left alone, 4908 which leaves the icon exactly as it is today. */ 4909 function matchSearchToBurger() { 4910 var header = document.getElementById('header'); 4911 if (!header) { return; } 4912 4913 var bg = getComputedStyle(header).backgroundColor; 4914 var m = bg.match(/rgba?\(\s*(\d+)[,\s]+(\d+)[,\s]+(\d+)(?:[,\s]+([\d.]+))?/); 4915 if (!m) { return; } 4916 4917 // A see-through header cannot be judged. Leave it. 4918 if (m[4] !== undefined && parseFloat(m[4]) < 0.9) { return; } 4919 4920 var light = (m[1] * 299 + m[2] * 587 + m[3] * 114) / 1000 > 140; 4921 4922 // Dark header: the white icon is already correct. 4923 if (!light) { return; } 4924 4925 var bar = document.querySelector('.mega-menu-mobile-toggle .mega-toggle-animated-inner'); 4926 if (!bar) { return; } 4927 4928 var colour = getComputedStyle(bar).backgroundColor; 4929 var cm = colour.match(/rgba?\(\s*\d+[,\s]+\d+[,\s]+\d+(?:[,\s]+([\d.]+))?/); 4930 if (!cm) { return; } 4931 if (cm[1] !== undefined && parseFloat(cm[1]) === 0) { return; } 4932 4933 header.style.setProperty('--tws-mp-burger', colour); 4934 header.classList.add('tws-mp-match-search'); 4935 } 4936 4937 /* Mega Menu puts mega-menu-open on the toggle when the panel slides in. Watch 4938 for it rather than listening for a click, so the class stays correct however 4939 the panel was opened or closed: the burger, the close button, the escape 4940 key or a tap outside it. */ 4941 function watchToggle() { 4942 var wraps = document.querySelectorAll('[id^="mega-menu-wrap-"]'); 4943 var root = document.documentElement; 4944
4945 function readAll() { 4946 var open = false; 4947 4948 for (var i = 0; i < wraps.length; i++) { 4949 var t = wraps[i].querySelector('.mega-menu-toggle'); 4950 if (t && t.classList.contains('mega-menu-open')) { open = true; } 4951 } 4952 4953 root.classList.toggle('tws-mp-open', open); 4954 } 4955 4956 if (!window.MutationObserver) { return; } 4957 4958 var observer = new MutationObserver(readAll); 4959 4960 for (var i = 0; i < wraps.length; i++) { 4961 var toggle = wraps[i].querySelector('.mega-menu-toggle'); 4962 if (toggle) { observer.observe(toggle, { attributes: true, attributeFilter: ['class'] }); } 4963 } 4964 4965 readAll(); 4966 } 4967 4968 function init() { 4969 build(); 4970 markHeaderSearch(); 4971 matchSearchToBurger(); 4972 watchToggle(); 4973 } 4974 4975 if (document.readyState !== 'loading') { init(); } 4976 else { document.addEventListener('DOMContentLoaded', init); } 4977 4978 window.addEventListener('load', init); 4979})(); 4980</script>
4980 4981
4981<script nowprocket id="tws-card-line-clamp-js"> 4982(function () { 4983 var TOTAL = 6, FLOOR = 2; 4984 4985 function lineHeight(el) { 4986 var v = getComputedStyle(el).lineHeight; 4987 if (v !== 'normal') return parseFloat(v); 4988 var s = document.createElement('span'); 4989 s.textContent = 'A'; 4990 s.style.cssText = 'display:block;position:absolute;visibility:hidden;white-space:nowrap'; 4991 el.appendChild(s); 4992 var h = s.offsetHeight; 4993 el.removeChild(s); 4994 return h || parseFloat(getComputedStyle(el).fontSize) * 1.2; 4995 } 4996 4997 function padV(el) { 4998 var cs = getComputedStyle(el); 4999 return parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom); 5000 } 5001 5002 function runBlock(block) { 5003 var cards = [].slice.call(block.querySelectorAll('li')).filter(function (li) { 5004 return li.querySelector(':scope > div > a > h3') && li.offsetParent !== null; 5005 }); 5006 if (!cards.length) return; 5007 5008 var ctaMax = Infinity, cta = block.querySelector('li.latest-posts-image'); 5009 if (cta && cta.offsetParent !== null) { 5010 var m = parseFloat(getComputedStyle(cta).maxHeight); 5011 if (!isNaN(m)) ctaMax = m; 5012 } 5013 5014 // Read everything in the unclamped state first, then write, so the page reflows once. 5015 block.classList.add('tws-lc-measure'); 5016 var data = cards.map(function (li) { 5017 var h = li.querySelector(':scope > div > a > h3'); 5018 var p = li.querySelector(':scope > div > a > p'); 5019 var hasP = p && p.textContent.trim() !== ''; 5020 var tLH = lineHeight(h), tH = h.offsetHeight, tPad = padV(h); 5021 var bLH = hasP ? lineHeight(p) : 0, bH = hasP ? p.offsetHeight : 0, bPad = hasP ? padV(p) : 0; 5022 var bottom = h.parentNode.parentNode.getBoundingClientRect().bottom; 5023 return { 5024 h: h, p: hasP ? p : null, tLH: tLH, bLH: bLH, 5025 tN: Math.max(1, Math.round((tH - tPad) / tLH)), 5026 bN: hasP ? Math.max(1, Math.round((bH - bPad) / bLH)) : 0, 5027 fixed: (bottom - li.getBoundingClientRect().top) - (tH - tPad) - (bH - bPad) 5028 }; 5029 }); 5030 block.classList.remove('tws-lc-measure'); 5031 5032 data.forEach(function (d) { 5033 var t = Math.min(d.tN, TOTAL - Math.min(d.bN, FLOOR)); 5034 var b = Math.min(d.bN, TOTAL - t); 5035 var room = ctaMax - d.fixed; 5036 while (t * d.tLH + b * d.bLH > room) { 5037 if (b > FLOOR && b >= t) b--; 5038 else if (t > FLOOR) t--; 5039 else if (b > 1) b--; 5040 else break; 5041 } 5042 // max-height as well as the clamp: Safari puts the ellipsis on the 5043 // last line but can leave the box taller, showing half the next line. 5044 d.h.style.webkitLineClamp = t; 5045 d.h.style.maxHeight = (t * d.tLH) + 'px'; 5046 if (d.p) { 5047 d.p.style.webkitLineClamp = b; 5048 d.p.style.maxHeight = (b * d.bLH) + 'px'; 5049 } 5050 }); 5051 } 5052 5053 function run() { 5054 [].forEach.call(document.querySelectorAll('.latest-posts-block'), runBlock); 5055 } 5056 5057 var timer; 5058 function later() { clearTimeout(timer); timer = setTimeout(run, 150); } 5059 5060 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', run); 5061 else run(); 5062 window.addEventListener('load', run); 5063 window.addEventListener('resize', later); 5064 if (document.fonts && document.fonts.ready) document.fonts.ready.then(run); 5065})(); 5066</script>
5066 5067
5067<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} 5068if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} 5069images=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} 5070if(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>
5070<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>
5070
5070<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>
5070 5071</body> 5072</html> 5073 5074<!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1790926367 -->
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.