PageSourceSearch

https://contractoruk.com/

html contractoruk.com collected 2026-09-24 18:50:33 UTC 178,891 bytes, 4,007 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" dir="ltr" prefix="og: https://ogp.me/ns#">
3  <head>
4    <meta name="robots" content="max-image-preview:large">
5        <meta name="google-site-verification" content="BroA_0R9wpp9rYPJXKRuHgCgBOU8qVvB53aPfgHywN4">
6    <!-- Consent Mode v2 defaults — must run before GTM/GA. Updated by cuk_bs/consent (cuk-consent.js).
7         analytics_storage defaults to GRANTED so Google Analytics counts every
8         visitor by default (it was 'denied', which only counted people who
9         clicked Accept — suppressing most of the traffic). The banner still
10         flips analytics_storage to 'denied' for anyone who explicitly Refuses.
11         Ad signals stay denied (no ad personalisation). -->
12    
12<script>
13    window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}
14    gtag('consent','default',{ad_storage:'denied',ad_user_data:'denied',ad_personalization:'denied',analytics_storage:'granted',functionality_storage:'granted',security_storage:'granted',wait_for_update:500});
15    </script>
15
16    <!-- Google Tag Manager -->
17    
17<script>
vendor: 343 bytes, lines 17-21
17(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
18    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
19    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
20    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
21    })(window,document,'script','dataLayer','
21GTM-P8G547W
vendor: 3 bytes, line 21
21');
21</script>
21
22    <!-- End Google Tag Manager -->
23    <!-- Google Ads (AW-18325353037) via gtag.js — deliberately NOT in the GTM
24         container (no admin access to GTM-P8G547W as of Jul 2026). Rides the
25         Consent Mode v2 defaults declared above: ad_storage stays denied
26         unless granted, so conversion reporting degrades to consent-mode
27         pings + modelling. The purchase event itself fires from
28         cuk_jobs_employer/ads_conversion on the checkout thank-you page. -->
vendor: 68 bytes, lines 28-29
28
29    <script async src="https://www.googletagmanager.com/gtag/js?id=
29AW-18325353037
vendor: 16 bytes, lines 29-30
29"></script>
30    
30<script>gtag('js',new Date());gtag('config','AW-18325353037');</script>
30
31        <link rel="alternate" type="application/rss+xml" title="ContractorUK News" href="/rss.xml" />
32    <meta charset="utf-8" />
vendor: 64 bytes, lines 32-33
32
33<script async src="https://www.googletagmanager.com/gtag/js?id=
33UA-2641187-1
vendor: 12 bytes, line 33
33"></script>
34<script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments)};gtag("js", new Date());gtag("set", "developer_id.dMDhkMT", true);gtag("config", "UA-2641187-1", {"groups":"default","anonymize_ip":true,"page_placeholder":"PLACEHOLDER_page_path","allow_ad_personalization_signals":false});</script>
34
35<meta name="description" content="ContractorUK — the home of UK IT contracting. Daily news, IR35 &amp; tax guides, take-home pay calculators, 15,000+ live contract jobs and a 25-year contractor community." />
36<link rel="canonical" href="https://contractoruk.com/" />
37<link rel="shortlink" href="https://contractoruk.com/" />
38<script>var pfHeaderImgUrl = '';var pfHeaderTagline = '';var pfdisableClickToDel  = 0;var pfHideImages = 0;var pfImageDisplayStyle = 'right';var pfDisablePDF = 1;var pfDisableEmail = 1;var pfDisablePrint = 0;var pfCustomCSS = '';var pfPlatform = 'Drupal 8';(function(){var js, pf;pf = document.createElement('script');pf.type = 'text/javascript';pf.src='//cdn.printfriendly.com/printfriendly.js';document.getElementsByTagName('head')[0].appendChild(pf)})();</script>
38
39<meta name="Generator" content="Drupal 10 (https://www.drupal.org)" />
40<meta name="MobileOptimized" content="width" />
41<meta name="HandheldFriendly" content="true" />
42<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
43<script>!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug getPageViewId".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
44posthog.init('phc_oySVr4U8iTdYnXkDU9cgybLUp8kGV6gFsFaez3pKz34G',{api_host:'https://www.contractoruk.com/media/stats',ui_host:'https://eu.posthog.com',defaults:'2025-05-24',persistence:'memory'});</script>
44
45<meta http-equiv="x-ua-compatible" content="ie=edge" />
46<link rel="icon" href="/themes/custom/cuk_bs/favicon.ico" type="image/vnd.microsoft.icon" />
47<script>window.a2a_config=window.a2a_config||{};a2a_config.callbacks=[];a2a_config.overlays=[];a2a_config.templates={};</script>
47
48
49    <title>Contractor UK: IT Contracting Resources for UK Contractors</title>
50	<meta name="referrer" content="always" />
51    <link rel="stylesheet" media="all" href="/sites/default/files/css/css_ad1hGXZQYYnAsNK5tBHEPu9o1QzciXumyA7fWt4Ut3g.css?delta=0&amp;language=en&amp;theme=cuk_bs&amp;include=eJxljWmOwyAMhS9E4EiRCS5B9YIwTJXbly6ZaTV_rLd8eoaUuoIcAd7CX5pKd1G1W29QA6MZZLSVSt4_C9GEbtOGYVOuKijd_G-9LIwy1k1psNg_bhvXNdobYijiXslkxCZx2kwagRbrBxXJZ7or41PPRX7shVO4Cg3y_L9bSG1UIP-X-CF1RCq2Y3K1FemXVlASHeHLLVRig2nM2WEdOUQwdD8Fbxae17OmQXgHxQl8-g" />
52<link rel="stylesheet" media="all" href="/sites/default/files/css/css_nzcQY7yobadKOn5YaD-Y4XHFAeT1djPfJKfp_wBI820.css?delta=1&amp;language=en&amp;theme=cuk_bs&amp;include=eJxljWmOwyAMhS9E4EiRCS5B9YIwTJXbly6ZaTV_rLd8eoaUuoIcAd7CX5pKd1G1W29QA6MZZLSVSt4_C9GEbtOGYVOuKijd_G-9LIwy1k1psNg_bhvXNdobYijiXslkxCZx2kwagRbrBxXJZ7or41PPRX7shVO4Cg3y_L9bSG1UIP-X-CF1RCq2Y3K1FemXVlASHeHLLVRig2nM2WEdOUQwdD8Fbxae17OmQXgHxQl8-g" />
53
54    
55              <div id="fb-root"></div>
56      
56<script>(function(d, s, id) {
57              var js, fjs = d.getElementsByTagName(s)[0];
58              if (d.getElementById(id)) return;
59              js = d.createElement(s); js.id = id;
60              js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.10";
61              fjs.parentNode.insertBefore(js, fjs);
62          }(document, 'script', 'facebook-jssdk'));</script>
62
63    
63<script src="https://use.typekit.net/brr1opg.js"></script>
63
64    
64<script>try{Typekit.load({ async: true });}catch(e){}</script>
64
65	
65<script defer src="https://use.fontawesome.com/releases/v5.0.6/js/all.js"></script>
65
66    	<!-- WL Cloud -->
67	
67<script async type="text/javascript" src="https://cloud.wordlift.io/app/bootstrap.js"></script>
67
68	<!-- End WL Cloud -->
69  </head>
70  <body class="layout-two-sidebars page-node-13105 path-frontpage node--type-landing-page">
71  <!-- Google Tag Manager (noscript) -->
vendor: 70 bytes, lines 71-72
71
72  <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
72GTM-P8G547W
vendor: 87 bytes, lines 72-74
72"
73  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
74  
74<!-- End Google Tag Manager (noscript) -->
75    <a href="#main-content" class="visually-hidden focusable skip-link">
76      Skip to main content
77    </a>
78    
79      <div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas>
80    <style>
81  /* =========================================================================
82     ContractorUK — modernised top navigation
83     -------------------------------------------------------------------------
84     Strategy: keep the brand navy identity but lighten/refine the dark nav into
85     a contemporary slate, add sticky-on-scroll + subtle accent line + cleaner
86     typography, and harmonise the auth widget + mobile offcanvas to match.
87     ========================================================================= */
88
89  :root {
90    /* Sampled from the ContractorUK logo: deep slate-navy + lime green */
91    --cuk-logo-navy: #1f2c3d;
92    --cuk-logo-navy-dark: #16202e;
93    --cuk-logo-navy-deeper: #0f1825;
94    --cuk-logo-green: #9bcb3c;
95    --cuk-logo-green-dark: #82b02b;
96    --cuk-logo-green-glow: rgba(155, 203, 60, 0.35);
97
98    --cuk-nav-bg: var(--cuk-logo-navy);
99    --cuk-nav-bg-scrolled: rgba(31, 44, 61, 0.92);
100    --cuk-nav-accent: var(--cuk-logo-green);
101    --cuk-nav-text: rgba(255, 255, 255, 0.82);
102    --cuk-nav-text-hover: #ffffff;
103    --cuk-nav-border: rgba(255, 255, 255, 0.08);
104    --cuk-brand-navy: var(--cuk-logo-navy);
105    --cuk-brand-navy-dark: var(--cuk-logo-navy-dark);
106  }
107
108  /* ----------- HEADER (logo + leaderboard) --------------------------------- */
109  .site-header {
110    border-bottom: 1px solid #eef0f4 !important;
111    padding: 0 0 2px;
112    transition: box-shadow 0.2s ease;
113  }
114  .site-header .navbar-brand {
115    padding: 0 0 0 32px;
116    display: inline-block;
117  }
118  .site-header .navbar-brand img {
119    max-height: 130px;
120    width: auto;
121    max-width: none; /* override .img-fluid so logo isn't capped to column width */
122  }
123  @media (max-width: 991.98px) {
124    .site-header .navbar-brand {
125      padding-left: 12px;
126    }
127    .site-header .navbar-brand img {
128      max-height: 120px;
129    }
130  }
131
132  /* ----------- DESKTOP NAV BAR --------------------------------------------- */
133  .cuk-nav-bar {
134    position: sticky;
135    top: 0;
136    z-index: 1030;
137    /* Subtle vertical gradient adds depth without being shouty */
138    background: linear-gradient(180deg,
139      var(--cuk-logo-navy) 0%,
140      var(--cuk-logo-navy-dark) 100%);
141    color: var(--cuk-nav-text);
142    border-bottom: 1px solid var(--cuk-nav-border);
143    /* NOTE: no backdrop-filter here. The bar background is fully opaque, so a
144       blur behind it is invisible, yet it forces the browser to re-blur the
145       page content on every scroll frame — the main cause of janky/"sticky"
146       scrolling. Removing it makes scrolling smooth with zero visual change. */
147    box-shadow: 0 2px 12px rgba(15, 24, 37, 0.18);
148  }
149  /* Lime-green accent hairline at top — picks up the "UK" in the logo */
150  .cuk-nav-bar::before {
151    content: "";
152    position: absolute;
153    inset: 0 0 auto 0;
154    height: 2px;
155    background: linear-gradient(90deg,
156      transparent 0%,
157      var(--cuk-logo-green) 30%,
158      var(--cuk-logo-green) 70%,
159      transparent 100%);
160    opacity: 0.85;
161  }
162
163  .cuk-nav-row {
164    display: flex;
165    align-items: stretch;
166    justify-content: space-between;
167    gap: 16px;
168    min-width: 0;
169    min-height: 52px;
170  }
171  .cuk-nav-row > :first-child {
172    min-width: 0;
173    flex: 1 1 auto;
174    display: flex;
175    align-items: stretch;
176    /* Fail-safe: nav items have white-space:nowrap and flex-shrink:0, so they
177       can't compress when the viewport is tight. Without this, overflowing
178       items render visually on top of the auth widget to the right. The
179       breakpoint rules below shrink the auth widget early enough that this
180       clip should never actually fire on real viewports, but it guards
181       against contextual-links UI and zoomed-text edge cases. */
182    overflow: hidden;
183  }
184
185  /* Tame the Bootstrap .row negative margins on the region wrapper */
186  .cuk-nav-bar .region-navigation,
187  .cuk-nav-bar .region.region-navigation {
188    margin: 0;
189    width: 100%;
190  }
191  .cuk-nav-bar .block-menu,
192  .cuk-nav-bar #block-mainnavigation {
193    width: 100%;
194    margin: 0;
195  }
196
197  /* Menu list + items
198     Pre-existing theme (scss/_header.scss → style.css) forces UPPERCASE,
199     a 46px line-height, a grey hover background, and tight padding. We
200     beat it with high-specificity selectors + !important on the key
201     declarations. Without touching the compiled stylesheet. */
202  .cuk-nav-bar .menu--main > ul,
203  .cuk-nav-bar .navbar-nav {
204    display: flex !important;
205    flex-wrap: nowrap;
206    align-items: stretch !important;
207    /* Auth widget removed: spread the menu items evenly across the full nav
208       width instead of bunching them on the left with empty space on the right. */
209    justify-content: space-between !important;
210    width: 100%;
211    gap: 2px;
212    margin: 0 !important;
213    /* Small symmetric side gutters; space-between handles the distribution. */
214    padding: 0 8px !important;
215    list-style: none;
216    text-transform: none !important;
217  }
218  .cuk-nav-bar .menu--main > ul li,
219  .cuk-nav-bar .nav-item {
220    display: flex;
221    align-items: stretch;
222    flex: 0 0 auto !important;
223    border: 0 !important;
224  }
225  .cuk-nav-bar .menu--main > ul li a,
226  .cuk-nav-bar .nav-link {
227    position: relative;
228    display: inline-flex !important;
229    align-items: center;
230    height: 52px;
231    line-height: 1.2 !important;
232    padding: 0 14px !important;
233    background: transparent !important;
234    color: var(--cuk-nav-text) !important;
235    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
236      'Helvetica Neue', Arial, sans-serif !important;
237    font-size: 13.5px !important;
238    font-weight: 500 !important;
239    letter-spacing: 0.2px !important;
240    text-transform: none !important;
241    text-align: center;
242    text-decoration: none;
243    white-space: nowrap;
244    border: 0 !important;
245    transition: color 0.15s ease, background 0.15s ease;
246  }
247  /* Animated underline that sits at the BOTTOM of the link */
248  .cuk-nav-bar .menu--main > ul li a::after,
249  .cuk-nav-bar .nav-link::after {
250    content: "";
251    position: absolute;
252    left: 14px;
253    right: 14px;
254    bottom: 0;
255    height: 2px;
256    background: var(--cuk-nav-accent);
257    border-radius: 2px 2px 0 0;
258    transform: scaleX(0);
259    transform-origin: left center;
260    transition: transform 0.22s cubic-bezier(.2, .6, .2, 1);
261  }
262  .cuk-nav-bar .menu--main > ul li a:hover,
263  .cuk-nav-bar .menu--main > ul li a:focus,
264  .cuk-nav-bar .menu--main > ul li a.is-active,
265  .cuk-nav-bar .nav-link:hover,
266  .cuk-nav-bar .nav-link:focus,
267  .cuk-nav-bar .nav-link.is-active {
268    color: var(--cuk-nav-text-hover) !important;
269    background: transparent !important;
270    text-decoration: none !important;
271  }
272  .cuk-nav-bar .menu--main > ul li a:hover::after,
273  .cuk-nav-bar .menu--main > ul li a:focus::after,
274  .cuk-nav-bar .menu--main > ul li a.is-active::after,
275  .cuk-nav-bar .nav-link:hover::after,
276  .cuk-nav-bar .nav-link:focus::after,
277  .cuk-nav-bar .nav-link.is-active::after {
278    transform: scaleX(1);
279  }
280
281  /* ----------- AUTH WIDGET (desktop) --------------------------------------- */
282  .cuk-auth-desktop {
283    display: flex;
284    align-items: center;
285    gap: 6px;
286    flex-shrink: 0;
287    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
288    font-size: 13.5px;
289    /* Subtle left separator from the menu */
290    padding-left: 16px;
291    margin-left: 8px;
292    border-left: 1px solid var(--cuk-nav-border);
293  }
294  .cuk-auth-link {
295    color: var(--cuk-nav-text);
296    text-decoration: none;
297    font-weight: 500;
298    padding: 7px 12px;
299    border-radius: 6px;
300    display: inline-flex;
301    align-items: center;
302    gap: 8px;
303    transition: color 0.15s ease, background 0.15s ease;
304    white-space: nowrap;
305  }
306  .cuk-auth-link:hover,
307  .cuk-auth-link:focus {
308    color: #fff;
309    background: rgba(255, 255, 255, 0.08);
310    text-decoration: none;
311  }
312  .cuk-auth-link--muted {
313    color: rgba(255, 255, 255, 0.55);
314    font-size: 12.5px;
315    padding: 6px 8px;
316  }
317  .cuk-auth-link--muted:hover { color: #fff; background: transparent; }
318
319  .cuk-auth-btn {
320    background: var(--cuk-logo-green);
321    color: var(--cuk-logo-navy);
322    padding: 6px 16px;
323    border-radius: 6px;
324    font-weight: 700;
325    text-decoration: none;
326    border: 1.5px solid var(--cuk-logo-green);
327    transition: all 0.15s ease;
328    display: inline-flex;
329    align-items: center;
330    font-size: 13.5px;
331    letter-spacing: 0.15px;
332    white-space: nowrap;
333  }
334  .cuk-auth-btn:hover,
335  .cuk-auth-btn:focus {
336    background: var(--cuk-logo-green-dark);
337    border-color: var(--cuk-logo-green-dark);
338    color: var(--cuk-logo-navy);
339    text-decoration: none;
340    transform: translateY(-1px);
341    box-shadow: 0 6px 16px var(--cuk-logo-green-glow);
342  }
343  .cuk-auth-avatar {
344    width: 24px;
345    height: 24px;
346    border-radius: 50%;
347    background: linear-gradient(135deg, var(--cuk-logo-green) 0%, var(--cuk-logo-green-dark) 100%);
348    color: var(--cuk-logo-navy);
349    display: inline-flex;
350    align-items: center;
351    justify-content: center;
352    font-size: 11px;
353    font-weight: 800;
354    flex-shrink: 0;
355    letter-spacing: 0;
356  }
357
358  /* ----------- MOBILE OFFCANVAS ------------------------------------------- */
359  .offcanvas-start {
360    border-right: 1px solid #eef0f4;
361  }
362  .offcanvas-header {
363    border-bottom: 1px solid #eef0f4;
364    padding: 16px 20px;
365  }
366  .offcanvas-header img {
367    max-height: 40px;
368    width: auto;
369  }
370  .offcanvas-body {
371    padding: 20px;
372  }
373
374  .cuk-auth-mobile {
375    display: flex;
376    flex-direction: column;
377    gap: 10px;
378    margin: 0 0 20px;
379    padding: 0 0 20px;
380    border-bottom: 1px solid #eef0f4;
381  }
382  .cuk-auth-mobile-primary {
383    background: var(--cuk-brand-navy);
384    color: #fff;
385    padding: 13px 18px;
386    border-radius: 10px;
387    text-decoration: none;
388    font-weight: 600;
389    font-size: 15px;
390    text-align: center;
391    border: 1.5px solid var(--cuk-brand-navy);
392    display: inline-flex;
393    align-items: center;
394    justify-content: center;
395    gap: 10px;
396  }
397  .cuk-auth-mobile-primary:hover,
398  .cuk-auth-mobile-primary:focus {
399    background: var(--cuk-brand-navy-dark);
400    border-color: var(--cuk-brand-navy-dark);
401    color: #fff;
402    text-decoration: none;
403  }
404  .cuk-auth-mobile-primary .cuk-auth-avatar {
405    background: rgba(255, 255, 255, 0.2);
406    color: #fff;
407  }
408  .cuk-auth-mobile-secondary {
409    background: transparent;
410    color: var(--cuk-brand-navy);
411    padding: 13px 18px;
412    border-radius: 10px;
413    text-decoration: none;
414    font-weight: 600;
415    font-size: 14px;
416    text-align: center;
417    border: 1.5px solid #d4dbe5;
418  }
419  .cuk-auth-mobile-secondary:hover,
420  .cuk-auth-mobile-secondary:focus {
421    border-color: var(--cuk-brand-navy);
422    color: var(--cuk-brand-navy);
423    background: #f1f5f9;
424    text-decoration: none;
425  }
426
427  /* Mobile menu — bigger touch targets, subtle dividers */
428  .offcanvas-body .navbar-nav {
429    flex-direction: column;
430    gap: 2px;
431  }
432  .offcanvas-body .nav-item { width: 100%; }
433  .offcanvas-body .nav-link {
434    display: block;
435    padding: 12px 14px;
436    color: #0f172a;
437    font-size: 15px;
438    font-weight: 500;
439    border-radius: 8px;
440    border: 0;
441    transition: background 0.15s ease, color 0.15s ease;
442  }
443  .offcanvas-body .nav-link:hover,
444  .offcanvas-body .nav-link:focus,
445  .offcanvas-body .nav-link.is-active {
446    background: #f1f5f9;
447    color: var(--cuk-brand-navy);
448    text-decoration: none;
449  }
450
451  /* Mobile hamburger refinement */
452  .navbar-toggler {
453    border: 1px solid #e2e6ed;
454    border-radius: 8px;
455    padding: 6px 9px;
456  }
457  .navbar-toggler:focus { box-shadow: 0 0 0 3px var(--cuk-logo-green-glow); }
458
459  /* Logout SVG icon — same colour as the text it replaces */
460  .cuk-auth-icon {
461    flex-shrink: 0;
462    opacity: 0.85;
463    transition: opacity 0.15s ease;
464  }
465  .cuk-auth-link--logout:hover .cuk-auth-icon,
466  .cuk-auth-link--logout:focus .cuk-auth-icon { opacity: 1; }
467
468  /* ---------- Responsive squeeze for the auth widget ----------
469   *
470   * The desktop nav has two siblings competing for the same row:
471   *  1. The primary menu (Mortgages, Insurance, …, Awards)  ←→ flex: 1
472   *  2. The auth widget (avatar + "My ContractorUK" + "Log out")
473   *
474   * With 10 menu items the row is wide. The old breakpoints (1399 / 1279)
475   * kicked in too late and Awards collided with the avatar between
476   * roughly 1400–1500px. We now defuse this earlier and tighten the
477   * menu padding across the full d-xl range:
478   *
479   *   < 1599px → drop the visible "Log out" text, keep the door-icon
480   *              (still a real link, just compact).
481   *   < 1499px → drop the "My ContractorUK" text, keep just the avatar
482   *              circle (with title= + aria-label= so the affordance
483   *              survives for SR users and tooltip-on-hover).
484   *   1200–1499px → tighten paddings and the menu font-size so 10 items
485   *              comfortably fit beside the avatar.
486   *
487   * The mobile breakpoint (< 1200px on this nav) collapses everything
488   * to the offcanvas which already uses the full text labels, so this
489   * only affects the d-xl desktop range.
490   */
491  @media (max-width: 1599px) {
492    .cuk-auth-link--logout .cuk-auth-link-text { display: none; }
493    .cuk-auth-link--logout { padding: 7px 9px; }
494  }
495  @media (max-width: 1499px) {
496    .cuk-auth-link--dash .cuk-auth-link-text { display: none; }
497    .cuk-auth-link--dash { padding: 5px 7px; gap: 0; }
498  }
499  @media (min-width: 1200px) and (max-width: 1499px) {
500    .cuk-nav-bar .menu--main > ul,
501    .cuk-nav-bar .navbar-nav { padding-left: 12px !important; }
502    .cuk-nav-bar .nav-link { padding: 0 9px !important; font-size: 13px !important; }
503    .cuk-auth-desktop { padding-left: 10px; margin-left: 4px; gap: 4px; }
504    .cuk-auth-link { padding: 6px 8px; }
505  }
506
507  @media print {
508    .cuk-nav-bar, .cuk-auth-desktop, .cuk-auth-mobile { display: none; }
509  }
510
511  /* =========================================================================
512     ContractorUK — modernised footer (matches the new top nav)
513     ========================================================================= */
514  .cuk-footer {
515    position: relative;
516    background: var(--cuk-nav-bg) !important;
517    color: rgba(255, 255, 255, 0.72);
518    padding: 36px 0 28px;
519    border-top: 1px solid rgba(255, 255, 255, 0.08);
520  }
521  /* Lime-green accent line at the very top, mirrors the nav */
522  .cuk-footer::before {
523    content: "";
524    position: absolute;
525    inset: 0 0 auto 0;
526    height: 2px;
527    background: linear-gradient(90deg,
528      transparent 0%,
529      var(--cuk-logo-green) 30%,
530      var(--cuk-logo-green) 70%,
531      transparent 100%);
532    opacity: 0.65;
533  }
534
535  .cuk-footer a {
536    color: rgba(255, 255, 255, 0.78) !important;
537    text-decoration: none !important;
538    transition: color 0.15s ease;
539  }
540  .cuk-footer a:hover,
541  .cuk-footer a:focus {
542    color: #ffffff !important;
543    text-decoration: none !important;
544  }
545
546  /* ----------- Footer logo (sits above the social links) ----------------- */
547  .cuk-footer-col--social {
548    display: flex;
549    flex-direction: column;
550    align-items: flex-start;
551    gap: 14px;
552  }
553  .cuk-footer-logo {
554    display: inline-flex !important;
555    align-items: center;
556    gap: 12px;
557    padding: 0 !important;
558    border: 0 !important;
559    border-radius: 0 !important;
560    line-height: 1;
561    color: #ffffff;
562    text-decoration: none;
563    opacity: 0.94;
564    transition: opacity 0.15s ease;
565  }
566  .cuk-footer-logo:hover,
567  .cuk-footer-logo:focus { opacity: 1; background: transparent !important; }
568  .cuk-footer-logo-img {
569    height: 40px;
570    width: auto;
571    display: block;
572    flex: 0 0 auto;
573  }
574
575  /* ----------- Social column (left) --------------------------------------- */
576  .cuk-footer-col--social ul,
577  .cuk-footer-col--social .menu,
578  .cuk-footer-col--social .nav {
579    display: flex !important;
580    flex-wrap: wrap;
581    gap: 8px;
582    list-style: none !important;
583    padding: 0 !important;
584    margin: 0 !important;
585    align-items: center;
586  }
587  .cuk-footer-col--social li {
588    list-style: none !important;
589    margin: 0 !important;
590    padding: 0 !important;
591  }
592  .cuk-footer-col--social a {
593    display: inline-flex;
594    align-items: center;
595    gap: 6px;
596    padding: 8px 12px;
597    border: 1px solid rgba(255, 255, 255, 0.12);
598    border-radius: 999px;
599    font-size: 13px;
600    font-weight: 500;
601    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
602  }
603  .cuk-footer-col--social a:hover,
604  .cuk-footer-col--social a:focus {
605    background: rgba(255, 255, 255, 0.06);
606    border-color: rgba(255, 255, 255, 0.25);
607  }
608
609  /* ----------- Footer menu column (centre) -------------------------------- */
610  .cuk-footer-col--menu nav,
611  .cuk-footer-col--menu .menu--footer,
612  .cuk-footer-col--menu .menu,
613  .cuk-footer-col--menu ul {
614    display: flex !important;
615    flex-wrap: wrap;
616    justify-content: center;
617    gap: 4px 6px;
618    list-style: none !important;
619    padding: 0 !important;
620    margin: 0 !important;
621  }
622  .cuk-footer-col--menu li { list-style: none !important; margin: 0 !important; }
623  .cuk-footer-col--menu a {
624    display: inline-block;
625    padding: 8px 14px;
626    border-radius: 6px;
627    font-size: 13.5px;
628    font-weight: 500;
629    letter-spacing: 0.2px;
630    text-transform: none !important;
631    transition: background 0.15s ease, color 0.15s ease;
632  }
633  .cuk-footer-col--menu a:hover,
634  .cuk-footer-col--menu a:focus {
635    background: rgba(255, 255, 255, 0.06);
636    color: #fff !important;
637  }
638
639  /* ----------- Brand column (right) --------------------------------------- */
640  .cuk-footer-col--brand {
641    font-size: 12.5px;
642    color: rgba(255, 255, 255, 0.5);
643    line-height: 1.6;
644  }
645  .cuk-footer-col--brand img {
646    max-height: 38px;
647    width: auto;
648    margin-bottom: 8px;
649    opacity: 0.95;
650    filter: brightness(1.05);
651  }
652  .cuk-footer-col--brand .footer-logo {
653    /* Override the SCSS background-image trick — the real <img> already renders */
654    background: none !important;
655    text-indent: 0 !important;
656    width: auto !important;
657    height: auto !important;
658  }
659
660  /* ----------- Mobile (<992px): stack neatly, recentre ------------------- */
661  @media (max-width: 991.98px) {
662    .cuk-footer { padding: 28px 0 24px; text-align: center; }
663    .cuk-footer-col--social {
664      align-items: center;
665    }
666    .cuk-footer-col--social ul,
667    .cuk-footer-col--social .menu,
668    .cuk-footer-col--social .nav { justify-content: center; }
669    .cuk-footer-col--brand { text-align: center !important; }
670    .cuk-footer-logo img { max-height: 36px; }
671  }
672
673  /* Service-card / icon-grid theming lives in the landing-page body now
674     (paragraph entity 2 → field_landpage_body). Keeping this block in the
675     theme just used to fight those styles with !important overrides. */
676
677  /* =========================================================================
678     ContractorUK — 404 / 403 notice banner
679     -------------------------------------------------------------------------
680     Shown above the homepage when a missing/forbidden URL is served as the
681     custom error page, so visitors know the requested page doesn't exist
682     instead of seeing a silent "fake" homepage.
683     ========================================================================= */
684  .cuk-error-banner {
685    background: #fff8ec;
686    border-top: 3px solid #f59e0b;
687    border-bottom: 1px solid #f1d6a3;
688  }
689  .cuk-error-banner__inner {
690    display: flex;
691    align-items: center;
692    gap: 16px;
693    padding: 14px 0;
694  }
695  .cuk-error-banner__icon {
696    flex: 0 0 auto;
697    width: 42px;
698    height: 42px;
699    display: inline-flex;
700    align-items: center;
701    justify-content: center;
702    border-radius: 50%;
703    background: #fdebcb;
704    color: #b45309;
705  }
706  .cuk-error-banner__text {
707    flex: 1 1 auto;
708    min-width: 0;
709    line-height: 1.45;
710  }
711  .cuk-error-banner__title {
712    display: block;
713    font-size: 15px;
714    font-weight: 700;
715    color: #1f2c3d;
716    margin-bottom: 1px;
717  }
718  .cuk-error-banner__msg {
719    font-size: 13.5px;
720    color: #6b5836;
721  }
722  .cuk-error-banner__path {
723    color: #8a6d3b;
724    font-style: italic;
725    word-break: break-all;
726  }
727  .cuk-error-banner__cta {
728    flex: 0 0 auto;
729    background: var(--cuk-logo-navy, #1f2c3d);
730    color: #fff !important;
731    padding: 9px 16px;
732    border-radius: 8px;
733    font-size: 13.5px;
734    font-weight: 600;
735    text-decoration: none !important;
736    white-space: nowrap;
737    transition: background 0.15s ease, transform 0.15s ease;
738  }
739  .cuk-error-banner__cta:hover,
740  .cuk-error-banner__cta:focus {
741    background: var(--cuk-logo-navy-dark, #16202e);
742    color: #fff !important;
743    transform: translateY(-1px);
744  }
745  @media (max-width: 575.98px) {
746    .cuk-error-banner__inner { flex-wrap: wrap; }
747    .cuk-error-banner__icon { width: 36px; height: 36px; }
748    .cuk-error-banner__cta { width: 100%; text-align: center; }
749  }
750
751  /* ----------- MOBILE MENU CLEAN-UP (6 Aug 2026) --------------------------
752     One menu, one row style, search first. The panel used to stack the
753     main nav above a second block that carried its own search and a
754     48-item site nav — 58 links, 4 duplicated, two visual languages. */
755  .offcanvas-body {
756    display: flex;
757    flex-direction: column;
758    padding: 16px 18px 28px;
759  }
760  .offcanvas-body .cuk-auth-mobile { order: 1; margin-bottom: 16px; padding-bottom: 16px; }
761  /* Search + site nav first: with 48 destinations, search is the fastest
762     route to any of them. */
763  .offcanvas-body .region-offcanvas { order: 2; }
764  .offcanvas-body .region-navigation { order: 3; margin-top: 22px; }
765
766  /* The commercial links get a label instead of sitting unexplained under
767     the site nav. */
768  .offcanvas-body .region-navigation::before {
769    content: "Services";
770    display: block;
771    margin: 0 0 6px 2px;
772    font-size: 10.5px;
773    font-weight: 700;
774    letter-spacing: .13em;
775    text-transform: uppercase;
776    color: #94a3b8;
777  }
778
779  /* One row style across both lists — the uppercase treatment shouted and
780     matched nothing else on the site. */
781  .offcanvas-body .navbar-nav .nav-link {
782    padding: 12px 8px;
783    font-size: 14.5px;
784    font-weight: 500;
785    text-transform: none;
786    letter-spacing: 0;
787    color: #22303f;
788    border-radius: 8px;
789    border-bottom: 1px solid #f1f5f9;
790  }
791  .offcanvas-body .navbar-nav .nav-item:last-child .nav-link { border-bottom: 0; }
792
793  /* Four links appeared in both lists; keep the ones that sit with the
794     rest of the site nav. */
795  .offcanvas-body .region-navigation a[href*="contract_jobs"],
796  .offcanvas-body .region-navigation a[href*="contractor_accountants"],
797  .offcanvas-body .region-navigation a[href*="contractor_pensions_advice"],
798  .offcanvas-body .region-navigation a[href*="umbrella_companies"] {
799    display: none;
800  }
801
802  /* The site-nav block was styled as a floating card inside a panel that
803     is already a card. */
804  /* The block ships its own card styling; inside a panel that is already
805     a card it just draws a box around a box. */
806  .offcanvas-body .cuk-sidebar-block {
807    background: transparent !important;
808    border: 0 !important;
809    box-shadow: none !important;
810    padding: 0 !important;
811    margin: 0 !important;
812  }
813  .offcanvas-body .search-section { margin: 0 0 14px; }
814  .offcanvas-body .search-header { display: none; }
815  .offcanvas-body .search-form input.search-input {
816    height: 44px;
817    font-size: 15px;
818    border-radius: 10px;
819  }
820  .offcanvas-body .modern-sidebar .sidebar-nav-list { gap: 0; }
821  .offcanvas-body .modern-sidebar .nav-item > a {
822    padding: 11px 8px;
823    font-size: 14.5px;
824    border-bottom: 1px solid #f1f5f9;
825    border-radius: 8px;
826  }
827  .offcanvas-body .modern-sidebar .nav-icon { width: 19px; height: 19px; }
828
829  /* The panel stopped short of the screen edge, leaving a strip of page
830     showing behind it. */
831  .offcanvas-start { width: min(88vw, 380px); }
832</style>
833
834
835<div id="sb-site" class="body-inner">
836
837    <header role="banner" class="site-header navbar navbar-expand-xl navbar-light bg-white border-bottom">
838    <div class="container d-block">
839      <div class="row">
840        <div class="col-9 col-lg-4 d-flex align-items-center">
841          <a class="navbar-brand" href="/" title="Contractor UK" rel="home">
842            <img class="img-fluid" src="/themes/custom/cuk_bs/logo.png?v=20260711e" alt="Contractor UK" width="460">
843          </a>
844        </div>
845        <div class="col-3 d-lg-none d-flex align-items-center justify-content-end">
846          <button
847            class="navbar-toggler"
848            type="button"
849            data-bs-toggle="offcanvas"
850            data-bs-target="#mobileMenu"
851            aria-controls="mobileMenu">
852            <span class="navbar-toggler-icon"></span>
853          </button>
854        </div>
855        <div class="col-12 col-lg-8 text-center text-lg-end">
856            <div id="block-homepageleaderboard" class="block-content-basic block block-block-content block-block-contentdd5e7a98-51a2-4e3a-8e69-2c0e261f15e2">
857  
858    
859      <div class="content">
860      
861  <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-visually_hidden">
862    <div class="field__label visually-hidden">Body</div>
863              <div class="field__item"><style>
864.top-banner-simple {
865    padding: 0;
866    margin: 10px 0;
867    text-align: center;
868}
869
870@media (max-width: 768px) {
871    .top-banner-simple {
872        margin: 8px 0;
873    }
874}
875</style>
876
877<div class="top-banner-simple">
878    <ins data-cukp-zoneid="92" data-cukp-id="636145c2380e065631f11ea3a8bd6418"></ins>
879</div>
880</div>
881          </div>
882
883    </div>
884  </div>
885
886
887        </div>
888      </div>
889    </div>
890  </header>
891
892    <div class="offcanvas offcanvas-start" tabindex="-1" id="mobileMenu">
893    <div class="offcanvas-header">
894      <a href="/">
895        <img src="/themes/custom/cuk_bs/logo.png?v=20260711a" alt="Contractor UK" width="200">
896      </a>
897      <button type="button" class="btn-close" data-bs-dismiss="offcanvas"></button>
898    </div>
899
900    <div class="offcanvas-body">
901                    <section class="row region region-navigation">
902    <nav role="navigation" aria-labelledby="block-mainnavigation-menu" id="block-mainnavigation" class="block block-menu navigation menu--main">
903            
904  <h2 class="visually-hidden" id="block-mainnavigation-menu">Main navigation</h2>
905  
906
907        
908              <ul class="clearfix nav navbar-nav flex-lg-row" data-component-id="cuk_bs:menu_main">
909                    <li class="nav-item">
910                          <a href="/money/contractor-mortgages.html" class="nav-link nav-link--money-contractor-mortgageshtml" data-drupal-link-system-path="node/290">Mortgages</a>
911              </li>
912                <li class="nav-item">
913                          <a href="/insurance" class="nav-link nav-link--insurance" data-drupal-link-system-path="node/355807">Insurance</a>
914              </li>
915                <li class="nav-item">
916                          <a href="/directory/contractor_accountants.html" target="_self" rel="" class="nav-link nav-link--directory-contractor-accountantshtml" data-drupal-link-system-path="node/9573">Contractor Accountants</a>
917              </li>
918                <li class="nav-item">
919                          <a href="/directory/umbrella_companies.html" class="nav-link nav-link--directory-umbrella-companieshtml" data-drupal-link-system-path="node/4319">Umbrella Companies</a>
920              </li>
921                <li class="nav-item">
922                          <a href="/calculators" class="nav-link nav-link--calculators" data-drupal-link-system-path="node/12862">Calculators</a>
923              </li>
924                <li class="nav-item">
925                          <a href="/contractor-bank-accounts" class="nav-link nav-link--contractor-bank-accounts" data-drupal-link-system-path="node/161">Banking</a>
926              </li>
927                <li class="nav-item">
928                          <a href="/contract_jobs" target="_self" class="nav-link nav-link--contract-jobs" data-drupal-link-system-path="contract_jobs">Jobs</a>
929              </li>
930                <li class="nav-item">
931                          <a href="/money/contractor_pensions_advice.html" class="nav-link nav-link--money-contractor-pensions-advicehtml" data-drupal-link-system-path="node/177">Pensions</a>
932              </li>
933                <li class="nav-item">
934                          <a href="/partners" class="nav-link nav-link--partners" data-drupal-link-system-path="node/15529">Partners</a>
935              </li>
936                <li class="nav-item">
937                          <a href="https://www.contractoruk.com/about/contracting_awards_2024.html" class="nav-link nav-link-https--wwwcontractorukcom-about-contracting-awards-2024html">Awards</a>
938              </li>
939        </ul>
940  
941
942
943
944  </nav>
945
946  </section>
947
948                <section class="row region region-offcanvas">
949    <div id="block-modernsidebarsearh" class="block-content-basic block block-block-content block-block-contente83557f9-df85-48ec-8c65-5804124eda20">
950  
951    
952      <div class="content">
953      
954  <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-visually_hidden">
955    <div class="field__label visually-hidden">Body</div>
956              <div class="field__item"><div class="cuk-sidebar-block" id="cuk-sidebar-block">
957
958<div class="search-section">
959    <div class="search-header"><div class="search-label">SEARCH</div></div>
960    <form class="search-form" action="/search" method="GET">
961        <input type="text" class="search-input" name="q" placeholder="Search or ask ContractorUK…" required>
962        <button class="search-button" type="submit">
963            <svg class="search-icon" viewBox="0 0 24 24"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.35-4.35"></path></svg>
964        </button>
965    </form>
966</div>
967
968<nav class="modern-sidebar">
969    <ul class="sidebar-nav-list">
970        <li class="nav-item"><a href="/"><svg class="nav-icon" viewBox="0 0 24 24"><path d="M3 9L12 2L21 9V20C21 20.5304 20.7893 21.0391 20.4142 21.4142C20.0391 21.7893 19.5304 22 19 22H5C4.46957 22 3.96086 21.7893 3.58579 21.4142C3.21071 21.0391 3 20.5304 3 20V9Z"/><path d="M9 22V12H15V22"/></svg>Home</a></li>
971        <li class="nav-item"><a href="https://forums.contractoruk.com/"><svg class="nav-icon" viewBox="0 0 24 24"><path d="M21 15C21 15.5304 20.7893 16.0391 20.4142 16.4142C20.0391 16.7893 19.5304 17 19 17H7L3 21V5C3 4.46957 3.21071 3.96086 3.58579 3.58579C3.96086 3.21071 4.46957 3 5 3H19C19.5304 3 20.0391 3.21071 20.4142 3.58579C20.7893 3.96086 21 4.46957 21 5V15Z"/></svg>Contractor Forum</a></li>
972        <li class="nav-item"><a href="/contract_jobs"><svg class="nav-icon" viewBox="0 0 24 24"><rect x="2" y="3" width="20" height="14" rx="2" ry="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>Contractor Jobs</a></li>
973        <li class="nav-item"><a href="/news"><svg class="nav-icon" viewBox="0 0 24 24"><path d="M4 22H20C20.5304 22 21.0391 21.7893 21.4142 21.4142C21.7893 21.0391 22 20.5304 22 20V4C22 3.46957 21.7893 2.96086 21.4142 2.58579C21.0391 2.21071 20.5304 2 20 2H8C7.46957 2 6.96086 2.21071 6.58579 2.58579C6.21071 2.96086 6 3.46957 6 4V20C6 20.5304 5.78929 21.0391 5.41421 21.4142C5.03914 21.7893 4.53043 22 4 22ZM4 22C3.46957 22 2.96086 21.7893 2.58579 21.4142C2.21071 21.0391 2 20.5304 2 20V11C2 10.4696 2.21071 9.96086 2.58579 9.58579C2.96086 9.21071 3.46957 9 4 9H6"/><line x1="10" y1="6" x2="18" y2="6"/><line x1="10" y1="10" x2="18" y2="10"/><line x1="10" y1="14" x2="18" y2="14"/></svg>News</a></li>
974        <li class="nav-item"><a href="/exclusives"><svg class="nav-icon" viewBox="0 0 24 24"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg>Exclusives</a></li>
975        <li class="nav-item"><a href="/ir35"><svg class="nav-icon" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><polyline points="12,6 12,12 16,14"/></svg>IR35</a></li>
976        <li class="nav-item"><a href="/market_rates"><svg class="nav-icon" viewBox="0 0 24 24"><polyline points="22,12 18,12 15,21 9,3 6,12 2,12"/></svg>Contract Market Rates</a></li>
977        <li class="nav-item"><a href="/first_timers"><svg class="nav-icon" viewBox="0 0 24 24"><path d="M14 2H6C5.46957 2 4.96086 2.21071 4.58579 2.58579C4.21071 2.96086 4 3.46957 4 4V20C4 20.5304 4.21071 21.0391 4.58579 21.4142C4.96086 21.7893 5.46957 22 6 22H18C18.5304 22 19.0391 21.7893 19.4142 21.4142C19.7893 21.0391 20 20.5304 20 20V8L14 2Z"/><polyline points="14,2 14,8 20,8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10,9 9,9 8,9"/></svg>First Timer Guides</a></li>
978        <li class="nav-item"><a href="/limited_companies"><svg class="nav-icon" viewBox="0 0 24 24"><path d="M21 16V8C20.9996 7.64928 20.9071 7.30481 20.7315 7.00116C20.556 6.69751 20.3037 6.44536 20 6.27L13 2.27C12.696 2.09446 12.3511 2.00205 12 2.00205C11.6489 2.00205 11.304 2.09446 11 2.27L4 6.27C3.69626 6.44536 3.44398 6.69751 3.26846 7.00116C3.09294 7.30481 3.00036 7.64928 3 8V16C3.00036 16.3507 3.09294 16.6952 3.26846 16.9988C3.44398 17.3025 3.69626 17.5546 4 17.73L11 21.73C11.304 21.9055 11.6489 21.9979 12 21.9979C12.3511 21.9979 12.696 21.9055 13 21.73L20 17.73C20.3037 17.5546 20.556 17.3025 20.7315 16.9988C20.9071 16.6952 20.9996 16.3507 21 16Z"/><polyline points="7.5,4.21 12,6.81 16.5,4.21"/><polyline points="7.5,19.79 7.5,14.6 3,12"/><polyline points="21,12 16.5,14.6 16.5,19.79"/><polyline points="3.27,6.96 12,12.01 20.73,6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></svg>Limited Company Guides</a></li>
979        <li class="nav-item"><a href="/umbrella-company-guides-2025"><svg class="nav-icon" viewBox="0 0 24 24"><path d="M23 19C23 19.5304 22.7893 20.0391 22.4142 20.4142C22.0391 20.7893 21.5304 21 21 21H3C2.46957 21 1.96086 20.7893 1.58579 20.4142C1.21071 20.0391 1 19.5304 1 19V8C1 7.46957 1.21071 6.96086 1.58579 6.58579C1.96086 6.21071 2.46957 6 3 6H21C21.5304 6 22.0391 6.21071 22.4142 6.58579C22.7893 6.96086 23 7.46957 23 8V19Z"/><polyline points="1,6 1,3 5,3"/><polyline points="23,6 23,3 19,3"/></svg>Umbrella Company Guides</a></li>
980        <li class="nav-item"><a href="/autumn-budget-2025-contractors">
980<svg class="nav-icon" viewBox="0 0 24 24"><rect x="2" y="7" width="20" height="14" rx="2" ry="2"/><path d="M16 7V5C16 3.89543 15.1046 3 14 3H10C8.89543 3 8 3.89543 8 5V7"/></svg>Autumn Budget 2025</a></li>
981        <li class="nav-item"><a href="/JSL-Reform-2026"><svg class="nav-icon" viewBox="0 0 24 24" fill="none" stroke="#2E3440" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12a9 9 0 0 1 18 0H3z"/><path d="M12 12v6a2.5 2.5 0 0 1-2.5 2.5"/></svg>JSL Reform 2026</a></li>
982        <li class="nav-item"><a href="https://www.contractoruk.com/loan-charge"><svg class="nav-icon" viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><line x1="10" y1="9" x2="8" y2="9"/><line x1="5" y1="5" x2="19" y2="19"/></svg>Loan Charge</a></li>
983
984
985        <li class="nav-item">
986            <details class="nav-category">
987                <summary>
988                    <svg class="nav-icon" viewBox="0 0 24 24"><rect x="2" y="3" width="20" height="14" rx="2" ry="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>
989                    Service Providers
990                    <svg class="cuk-toggle" viewBox="0 0 24 24" fill="none"><path d="M7.5 2.5L12.5 7.5L7.5 12.5L2.5 7.5Z" rx="1" stroke="#4a5568" stroke-width="1.8" stroke-linejoin="round"/><path d="M11.5 6.5L16.5 11.5L11.5 16.5L6.5 11.5Z" stroke="#4a5568" stroke-width="1.8" stroke-linejoin="round" fill="white"/><path d="M11.5 6.5L16.5 11.5L11.5 16.5L6.5 11.5Z" stroke="#8ab52e" stroke-width="1.8" stroke-linejoin="round" fill="none"/></svg>
991                    <span class="chevron-toggle"></span>
992                </summary>
993                <div class="submenu-content">
994                    <ul>
995                        <li><a href="/directory/umbrella_companies.html">Umbrella Companies</a></li>
996                        <li><a href="/directory/contractor_accountants.html">Contractor Accountants</a></li>
997                        <li><a href="/directory/it_contractor_recruitment_agencies.html">Regulatory &amp; Compliance</a></li>
998                        <li><a href="/directory/online_accounting_software.html">Accounting Software</a></li>
999                        <li><a href="/insurance/ir35_insurance.html">IR35 Insurance</a></li>
1000                        <li><a href="/directory/financial_service_providers.html">Financial Services</a></li>
1001                        <li><a href="/directory/mvl_agencies.html">Liquidation Services</a></li>
1002                        <li><a href="/directory/banking_providers.html">Banking Providers</a></li>
1003                        <li><a href="/markel">Contractor Insurance</a></li>
1004                        <li><a href="/money/contractor_pensions_advice.html">Pension Providers</a></li>
1005                    </ul>
1006                </div>
1007            </details>
1008        </li>
1009
1010        <li class="nav-item">
1011            <details class="nav-category">
1012                <summary>
1013                    <svg class="nav-icon" viewBox="0 0 24 24"><path d="M4 19.5C4 18.837 4.26339 18.2011 4.73223 17.7322C5.20107 17.2634 5.83696 17 6.5 17H20"/><path d="M6.5 2H20V22H6.5C5.83696 22 5.20107 21.7366 4.73223 21.2678C4.26339 20.7989 4 20.163 4 19.5V4.5C4 3.83696 4.26339 3.20107 4.73223 2.73223C5.20107 2.26339 5.83696 2 6.5 2Z"/></svg>
1014                    More News &amp; Guides
1015                    <svg class="cuk-toggle" viewBox="0 0 24 24" fill="none"><path d="M7.5 2.5L12.5 7.5L7.5 12.5L2.5 7.5Z" rx="1" stroke="#4a5568" stroke-width="1.8" stroke-linejoin="round"/><path d="M11.5 6.5L16.5 11.5L11.5 16.5L6.5 11.5Z" stroke="#4a5568" stroke-width="1.8" stroke-linejoin="round" fill="white"/><path d="M11.5 6.5L16.5 11.5L11.5 16.5L6.5 11.5Z" stroke="#8ab52e" stroke-width="1.8" stroke-linejoin="round" fill="none"/></svg>
1016                    <span class="chevron-toggle"></span>
1017                </summary>
1018                <div class="submenu-content">
1019                    <ul>
1020                        <li><a href="/money">Money</a></li>
1021                        <li>
1021<a href="/money/what_dividend_tax_rates_allowances_and_how_calculate_it.html">Dividends</a></li>
1022                        <li><a href="/expenses">Contractor Expenses</a></li>
1023                        <li><a href="/what_is_ir35.html">What is IR35?</a></li>
1024                        <li><a href="/cv">CV Writing</a></li>
1025                        <li><a href="/mvl/contractor_mvl_solution_sfp_group.html">Closing a Company - MVL</a></li>
1026                        <li><a href="/public_sector_contracting">Public Sector Contracting</a></li>
1027                        <li><a href="/vat">VAT / Flat Rate VAT</a></li>
1028                        <li><a href="/overseas-contracting-guide">Contracting Overseas</a></li>
1029                        <li><a href="/agency_workers_regulations">Agency Worker Regulations</a></li>
1030                        <li><a href="/ebt">Employee Benefit Trusts</a></li>
1031                        <li><a href="/security_clearance">Security Clearance</a></li>
1032                        <li><a href="/agencies">Agency Guides</a></li>
1033                        <li><a href="/training">Training</a></li>
1034                    </ul>
1035                </div>
1036            </details>
1037        </li>
1038
1039        <li class="nav-item">
1040            <details class="nav-category">
1041                <summary>
1042                    <svg class="nav-icon" viewBox="0 0 24 24"><rect x="2" y="3" width="20" height="14" rx="2" ry="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>
1043                    More Contractor Services
1044                    <svg class="cuk-toggle" viewBox="0 0 24 24" fill="none"><path d="M7.5 2.5L12.5 7.5L7.5 12.5L2.5 7.5Z" rx="1" stroke="#4a5568" stroke-width="1.8" stroke-linejoin="round"/><path d="M11.5 6.5L16.5 11.5L11.5 16.5L6.5 11.5Z" stroke="#4a5568" stroke-width="1.8" stroke-linejoin="round" fill="white"/><path d="M11.5 6.5L16.5 11.5L11.5 16.5L6.5 11.5Z" stroke="#8ab52e" stroke-width="1.8" stroke-linejoin="round" fill="none"/></svg>
1045                    <span class="chevron-toggle"></span>
1046                </summary>
1047                <div class="submenu-content">
1048                    <ul>
1049                        <li><a href="/money/accounting_contractors.html">Accounting for Contractors</a></li>
1050                        <li><a href="/overseas_guides/working_overseas_uk_contract_legal_and_logistical_considerations.html">Working Overseas</a></li>
1051                        <li><a href="/money/financial_advice_for_contractors.html">Contractor Pensions</a></li>
1052                        <li><a href="/markel">Contractor Insurance</a></li>
1053                        <li><a href="/node/14909">Contractor Mortgages</a></li>
1054                        <li><a href="/directory/banking_providers.html">Business Banking</a></li>
1055                        <li><a href="/agencies/anti_debt_hacks_ultimate_get_paid_survival_guide_agency_it_contractor.html">Debt Recovery</a></li>
1056                        <li><a href="/news/contracting_news?page=23">Healthcare Insurance</a></li>
1057                        <li><a href="/money/your_hmrc_tax_return_contractor_experts_self_assessment_guide.html">Tax Returns</a></li>
1058                        <li><a href="/online_company_formation/registration_agent.html">Company Formation</a></li>
1059                        <li><a href="/vat">Contractor VAT</a></li>
1060                        <li><a href="/directory">Freelance Directory</a></li>
1061                    </ul>
1062                </div>
1063            </details>
1064        </li>
1065    </ul>
1066</nav>
1067
1068</div></div>
1069          </div>
1070
1071    </div>
1072  </div>
1073
1074  </section>
1075
1076          </div>
1077  </div>
1078
1079        <nav class="cuk-nav-bar d-none d-xl-block" aria-label="Primary">
1080      <div class="container">
1081        <div class="cuk-nav-row">
1082          <div>  <section class="row region region-navigation">
1083    <nav role="navigation" aria-labelledby="block-mainnavigation-menu" id="block-mainnavigation" class="block block-menu navigation menu--main">
1084            
1085  <h2 class="visually-hidden" id="block-mainnavigation-menu">Main navigation</h2>
1086  
1087
1088        
1089              <ul class="clearfix nav navbar-nav flex-lg-row" data-component-id="cuk_bs:menu_main">
1090                    <li class="nav-item">
1091                          <a href="/money/contractor-mortgages.html" class="nav-link nav-link--money-contractor-mortgageshtml" data-drupal-link-system-path="node/290">Mortgages</a>
1092              </li>
1093                <li class="nav-item">
1094                          <a href="/insurance" class="nav-link nav-link--insurance" data-drupal-link-system-path="node/355807">Insurance</a>
1095              </li>
1096                <li class="nav-item">
1097                          <a href="/directory/contractor_accountants.html" target="_self" rel="" class="nav-link nav-link--directory-contractor-accountantshtml" data-drupal-link-system-path="node/9573">Contractor Accountants</a>
1098              </li>
1099                <li class="nav-item">
1100                          <a href="/directory/umbrella_companies.html" class="nav-link nav-link--directory-umbrella-companieshtml" data-drupal-link-system-path="node/4319">Umbrella Companies</a>
1101              </li>
1102                <li class="nav-item">
1103                          <a href="/calculators" class="nav-link nav-link--calculators" data-drupal-link-system-path="node/12862">Calculators</a>
1104              </li>
1105                <li class="nav-item">
1106                          <a href="/contractor-bank-accounts" class="nav-link nav-link--contractor-bank-accounts" data-drupal-link-system-path="node/161">Banking</a>
1107              </li>
1108                <li class="nav-item">
1109                          <a href="/contract_jobs" target="_self" class="nav-link nav-link--contract-jobs" data-drupal-link-system-path="contract_jobs">Jobs</a>
1110              </li>
1111                <li class="nav-item">
1112                          <a href="/money/contractor_pensions_advice.html" class="nav-link nav-link--money-contractor-pensions-advicehtml" data-drupal-link-system-path="node/177">Pensions</a>
1113              </li>
1114                <li class="nav-item">
1115                          <a href="/partners" class="nav-link nav-link--partners" data-drupal-link-system-path="node/15529">Partners</a>
1116              </li>
1117                <li class="nav-item">
1118                          <a href="https://www.contractoruk.com/about/contracting_awards_2024.html" class="nav-link nav-link-https--wwwcontractorukcom-about-contracting-awards-2024html">Awards</a>
1119              </li>
1120        </ul>
1121  
1122
1123
1124
1125  </nav>
1126
1127  </section>
1128</div>
1129                            </div>
1130      </div>
1131    </nav>
1132  
1133    
1134        <div class="container my-4">
1135        <div data-drupal-messages-fallback class="hidden"></div>
1136
1137
1138    </div>
1139  
1140    <main class="main-container my-4">
1141    <div class="container">
1142      <div class="row">
1143                <div class="col-lg-3 sidebar-left">
1144            <aside role="complementary">
1145              <div class="d-none d-lg-block">
1146                  <section class="row region region-offcanvas">
1147    <div id="block-modernsidebarsearh" class="block-content-basic block block-block-content block-block-contente83557f9-df85-48ec-8c65-5804124eda20">
1148  
1149    
1150      <div class="content">
1151      
1152  <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-visually_hidden">
1153    <div class="field__label visually-hidden">Body</div>
1154              <div class="field__item"><div class="cuk-sidebar-block" id="cuk-sidebar-block">
1155
1156<div class="search-section">
1157    <div class="search-header"><div class="search-label">SEARCH</div></div>
1158    <form class="search-form" action="/search" method="GET">
1159        <input type="text" class="search-input" name="q" placeholder="Search or ask ContractorUK…" required>
1160        <button class="search-button" type="submit">
1161            <svg class="search-icon" viewBox="0 0 24 24"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.35-4.35"></path></svg>
1162        </button>
1163    </form>
1164</div>
1165
1166<nav class="modern-sidebar">
1167    <ul class="sidebar-nav-list">
1168        <li class="nav-item"><a href="/"><svg class="nav-icon" viewBox="0 0 24 24"><path d="M3 9L12 2L21 9V20C21 20.5304 20.7893 21.0391 20.4142 21.4142C20.0391 21.7893 19.5304 22 19 22H5C4.46957 22 3.96086 21.7893 3.58579 21.4142C3.21071 21.0391 3 20.5304 3 20V9Z"/><path d="M9 22V12H15V22"/></svg>Home</a></li>
1169        <li class="nav-item"><a href="https://forums.contractoruk.com/"><svg class="nav-icon" viewBox="0 0 24 24"><path d="M21 15C21 15.5304 20.7893 16.0391 20.4142 16.4142C20.0391 16.7893 19.5304 17 19 17H7L3 21V5C3 4.46957 3.21071 3.96086 3.58579 3.58579C3.96086 3.21071 4.46957 3 5 3H19C19.5304 3 20.0391 3.21071 20.4142 3.58579C20.7893 3.96086 21 4.46957 21 5V15Z"/></svg>Contractor Forum</a></li>
1170        <li class="nav-item"><a href="/contract_jobs"><svg class="nav-icon" viewBox="0 0 24 24"><rect x="2" y="3" width="20" height="14" rx="2" ry="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>Contractor Jobs</a></li>
1171        <li class="nav-item"><a href="/news"><svg class="nav-icon" viewBox="0 0 24 24"><path d="M4 22H20C20.5304 22 21.0391 21.7893 21.4142 21.4142C21.7893 21.0391 22 20.5304 22 20V4C22 3.46957 21.7893 2.96086 21.4142 2.58579C21.0391 2.21071 20.5304 2 20 2H8C7.46957 2 6.96086 2.21071 6.58579 2.58579C6.21071 2.96086 6 3.46957 6 4V20C6 20.5304 5.78929 21.0391 5.41421 21.4142C5.03914 21.7893 4.53043 22 4 22ZM4 22C3.46957 22 2.96086 21.7893 2.58579 21.4142C2.21071 21.0391 2 20.5304 2 20V11C2 10.4696 2.21071 9.96086 2.58579 9.58579C2.96086 9.21071 3.46957 9 4 9H6"/><line x1="10" y1="6" x2="18" y2="6"/><line x1="10" y1="10" x2="18" y2="10"/><line x1="10" y1="14" x2="18" y2="14"/></svg>News</a></li>
1172        <li class="nav-item"><a href="/exclusives"><svg class="nav-icon" viewBox="0 0 24 24"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg>Exclusives</a></li>
1173        <li class="nav-item"><a href="/ir35"><svg class="nav-icon" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><polyline points="12,6 12,12 16,14"/></svg>IR35</a></li>
1174        <li class="nav-item"><a href="/market_rates"><svg class="nav-icon" viewBox="0 0 24 24"><polyline points="22,12 18,12 15,21 9,3 6,12 2,12"/></svg>Contract Market Rates</a></li>
1175        <li class="nav-item"><a href="/first_timers"><svg class="nav-icon" viewBox="0 0 24 24"><path d="M14 2H6C5.46957 2 4.96086 2.21071 4.58579 2.58579C4.21071 2.96086 4 3.46957 4 4V20C4 20.5304 4.21071 21.0391 4.58579 21.4142C4.96086 21.7893 5.46957 22 6 22H18C18.5304 22 19.0391 21.7893 19.4142 21.4142C19.7893 21.0391 20 20.5304 20 20V8L14 2Z"/><polyline points="14,2 14,8 20,8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10,9 9,9 8,9"/></svg>First Timer Guides</a></li>
1176        <li class="nav-item"><a href="/limited_companies"><svg class="nav-icon" viewBox="0 0 24 24"><path d="M21 16V8C20.9996 7.64928 20.9071 7.30481 20.7315 7.00116C20.556 6.69751 20.3037 6.44536 20 6.27L13 2.27C12.696 2.09446 12.3511 2.00205 12 2.00205C11.6489 2.00205 11.304 2.09446 11 2.27L4 6.27C3.69626 6.44536 3.44398 6.69751 3.26846 7.00116C3.09294 7.30481 3.00036 7.64928 3 8V16C3.00036 16.3507 3.09294 16.6952 3.26846 16.9988C3.44398 17.3025 3.69626 17.5546 4 17.73L11 21.73C11.304 21.9055 11.6489 21.9979 12 21.9979C12.3511 21.9979 12.696 21.9055 13 21.73L20 17.73C20.3037 17.5546 20.556 17.3025 20.7315 16.9988C20.9071 16.6952 20.9996 16.3507 21 16Z"/><polyline points="7.5,4.21 12,6.81 16.5,4.21"/><polyline points="7.5,19.79 7.5,14.6 3,12"/><polyline points="21,12 16.5,14.6 16.5,19.79"/><polyline points="3.27,6.96 12,12.01 20.73,6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></svg>Limited Company Guides</a></li>
1177        <li class="nav-item"><a href="/umbrella-company-guides-2025"><svg class="nav-icon" viewBox="0 0 24 24"><path d="M23 19C23 19.5304 22.7893 20.0391 22.4142 20.4142C22.0391 20.7893 21.5304 21 21 21H3C2.46957 21 1.96086 20.7893 1.58579 20.4142C1.21071 20.0391 1 19.5304 1 19V8C1 7.46957 1.21071 6.96086 1.58579 6.58579C1.96086 6.21071 2.46957 6 3 6H21C21.5304 6 22.0391 6.21071 22.4142 6.58579C22.7893 6.96086 23 7.46957 23 8V19Z"/><polyline points="1,6 1,3 5,3"/><polyline points="23,6 23,3 19,3"/></svg>Umbrella Company Guides</a></li>
1178        <li class="nav-item"><a href="/autumn-budget-2025-contractors">
1178<svg class="nav-icon" viewBox="0 0 24 24"><rect x="2" y="7" width="20" height="14" rx="2" ry="2"/><path d="M16 7V5C16 3.89543 15.1046 3 14 3H10C8.89543 3 8 3.89543 8 5V7"/></svg>Autumn Budget 2025</a></li>
1179        <li class="nav-item"><a href="/JSL-Reform-2026"><svg class="nav-icon" viewBox="0 0 24 24" fill="none" stroke="#2E3440" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12a9 9 0 0 1 18 0H3z"/><path d="M12 12v6a2.5 2.5 0 0 1-2.5 2.5"/></svg>JSL Reform 2026</a></li>
1180        <li class="nav-item"><a href="https://www.contractoruk.com/loan-charge"><svg class="nav-icon" viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><line x1="10" y1="9" x2="8" y2="9"/><line x1="5" y1="5" x2="19" y2="19"/></svg>Loan Charge</a></li>
1181
1182
1183        <li class="nav-item">
1184            <details class="nav-category">
1185                <summary>
1186                    <svg class="nav-icon" viewBox="0 0 24 24"><rect x="2" y="3" width="20" height="14" rx="2" ry="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>
1187                    Service Providers
1188                    <svg class="cuk-toggle" viewBox="0 0 24 24" fill="none"><path d="M7.5 2.5L12.5 7.5L7.5 12.5L2.5 7.5Z" rx="1" stroke="#4a5568" stroke-width="1.8" stroke-linejoin="round"/><path d="M11.5 6.5L16.5 11.5L11.5 16.5L6.5 11.5Z" stroke="#4a5568" stroke-width="1.8" stroke-linejoin="round" fill="white"/><path d="M11.5 6.5L16.5 11.5L11.5 16.5L6.5 11.5Z" stroke="#8ab52e" stroke-width="1.8" stroke-linejoin="round" fill="none"/></svg>
1189                    <span class="chevron-toggle"></span>
1190                </summary>
1191                <div class="submenu-content">
1192                    <ul>
1193                        <li><a href="/directory/umbrella_companies.html">Umbrella Companies</a></li>
1194                        <li><a href="/directory/contractor_accountants.html">Contractor Accountants</a></li>
1195                        <li><a href="/directory/it_contractor_recruitment_agencies.html">Regulatory &amp; Compliance</a></li>
1196                        <li><a href="/directory/online_accounting_software.html">Accounting Software</a></li>
1197                        <li><a href="/insurance/ir35_insurance.html">IR35 Insurance</a></li>
1198                        <li><a href="/directory/financial_service_providers.html">Financial Services</a></li>
1199                        <li><a href="/directory/mvl_agencies.html">Liquidation Services</a></li>
1200                        <li><a href="/directory/banking_providers.html">Banking Providers</a></li>
1201                        <li><a href="/markel">Contractor Insurance</a></li>
1202                        <li><a href="/money/contractor_pensions_advice.html">Pension Providers</a></li>
1203                    </ul>
1204                </div>
1205            </details>
1206        </li>
1207
1208        <li class="nav-item">
1209            <details class="nav-category">
1210                <summary>
1211                    <svg class="nav-icon" viewBox="0 0 24 24"><path d="M4 19.5C4 18.837 4.26339 18.2011 4.73223 17.7322C5.20107 17.2634 5.83696 17 6.5 17H20"/><path d="M6.5 2H20V22H6.5C5.83696 22 5.20107 21.7366 4.73223 21.2678C4.26339 20.7989 4 20.163 4 19.5V4.5C4 3.83696 4.26339 3.20107 4.73223 2.73223C5.20107 2.26339 5.83696 2 6.5 2Z"/></svg>
1212                    More News &amp; Guides
1213                    <svg class="cuk-toggle" viewBox="0 0 24 24" fill="none"><path d="M7.5 2.5L12.5 7.5L7.5 12.5L2.5 7.5Z" rx="1" stroke="#4a5568" stroke-width="1.8" stroke-linejoin="round"/><path d="M11.5 6.5L16.5 11.5L11.5 16.5L6.5 11.5Z" stroke="#4a5568" stroke-width="1.8" stroke-linejoin="round" fill="white"/><path d="M11.5 6.5L16.5 11.5L11.5 16.5L6.5 11.5Z" stroke="#8ab52e" stroke-width="1.8" stroke-linejoin="round" fill="none"/></svg>
1214                    <span class="chevron-toggle"></span>
1215                </summary>
1216                <div class="submenu-content">
1217                    <ul>
1218                        <li><a href="/money">Money</a></li>
1219                        <li>
1219<a href="/money/what_dividend_tax_rates_allowances_and_how_calculate_it.html">Dividends</a></li>
1220                        <li><a href="/expenses">Contractor Expenses</a></li>
1221                        <li><a href="/what_is_ir35.html">What is IR35?</a></li>
1222                        <li><a href="/cv">CV Writing</a></li>
1223                        <li><a href="/mvl/contractor_mvl_solution_sfp_group.html">Closing a Company - MVL</a></li>
1224                        <li><a href="/public_sector_contracting">Public Sector Contracting</a></li>
1225                        <li><a href="/vat">VAT / Flat Rate VAT</a></li>
1226                        <li><a href="/overseas-contracting-guide">Contracting Overseas</a></li>
1227                        <li><a href="/agency_workers_regulations">Agency Worker Regulations</a></li>
1228                        <li><a href="/ebt">Employee Benefit Trusts</a></li>
1229                        <li><a href="/security_clearance">Security Clearance</a></li>
1230                        <li><a href="/agencies">Agency Guides</a></li>
1231                        <li><a href="/training">Training</a></li>
1232                    </ul>
1233                </div>
1234            </details>
1235        </li>
1236
1237        <li class="nav-item">
1238            <details class="nav-category">
1239                <summary>
1240                    <svg class="nav-icon" viewBox="0 0 24 24"><rect x="2" y="3" width="20" height="14" rx="2" ry="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>
1241                    More Contractor Services
1242                    <svg class="cuk-toggle" viewBox="0 0 24 24" fill="none"><path d="M7.5 2.5L12.5 7.5L7.5 12.5L2.5 7.5Z" rx="1" stroke="#4a5568" stroke-width="1.8" stroke-linejoin="round"/><path d="M11.5 6.5L16.5 11.5L11.5 16.5L6.5 11.5Z" stroke="#4a5568" stroke-width="1.8" stroke-linejoin="round" fill="white"/><path d="M11.5 6.5L16.5 11.5L11.5 16.5L6.5 11.5Z" stroke="#8ab52e" stroke-width="1.8" stroke-linejoin="round" fill="none"/></svg>
1243                    <span class="chevron-toggle"></span>
1244                </summary>
1245                <div class="submenu-content">
1246                    <ul>
1247                        <li><a href="/money/accounting_contractors.html">Accounting for Contractors</a></li>
1248                        <li><a href="/overseas_guides/working_overseas_uk_contract_legal_and_logistical_considerations.html">Working Overseas</a></li>
1249                        <li><a href="/money/financial_advice_for_contractors.html">Contractor Pensions</a></li>
1250                        <li><a href="/markel">Contractor Insurance</a></li>
1251                        <li><a href="/node/14909">Contractor Mortgages</a></li>
1252                        <li><a href="/directory/banking_providers.html">Business Banking</a></li>
1253                        <li><a href="/agencies/anti_debt_hacks_ultimate_get_paid_survival_guide_agency_it_contractor.html">Debt Recovery</a></li>
1254                        <li><a href="/news/contracting_news?page=23">Healthcare Insurance</a></li>
1255                        <li><a href="/money/your_hmrc_tax_return_contractor_experts_self_assessment_guide.html">Tax Returns</a></li>
1256                        <li><a href="/online_company_formation/registration_agent.html">Company Formation</a></li>
1257                        <li><a href="/vat">Contractor VAT</a></li>
1258                        <li><a href="/directory">Freelance Directory</a></li>
1259                    </ul>
1260                </div>
1261            </details>
1262        </li>
1263    </ul>
1264</nav>
1265
1266</div></div>
1267          </div>
1268
1269    </div>
1270  </div>
1271
1272  </section>
1273
1274                  <div id="block-homepageskyscraper-2" class="block-content-basic block block-block-content block-block-content93abe062-5feb-4e2f-8b71-23731c239ecc">
1275  
1276    
1277      <div class="content">
1278      
1279  <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-visually_hidden">
1280    <div class="field__label visually-hidden">Body</div>
1281              <div class="field__item"><style>
1282/* Modern Banner Ad Container - Sticky Version (Safari Fixed) */
1283.modern-banner-container {
1284    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
1285    background: none;
1286    border: none;
1287    box-shadow: none;
1288    padding: 0;
1289    margin: 30px 0;
1290    position: relative;
1291    overflow: visible;
1292    text-align: center;
1293    -webkit-transform: translateZ(0);
1294    transform: translateZ(0);
1295}
1296.modern-banner-container.is-stuck {
1297    position: fixed !important;
1298    /* Fallback only — the script sets the exact top (below the sticky nav)
1299       inline. Kept generous so the ad never tucks under the nav even if JS
1300       hasn't run yet. */
1301    top: 80px !important;
1302    z-index: 1031 !important;
1303    -webkit-transform: translateZ(0);
1304    transform: translateZ(0);
1305}
1306.sticky-placeholder {
1307    display: none;
1308    visibility: hidden;
1309}
1310.sticky-placeholder.active {
1311    display: block;
1312    visibility: visible;
1313}
1314@media (max-width: 768px) {
1315    .modern-banner-container {
1316        margin: 20px 0;
1317    }
1318}
1319</style>
1320
1321<div class="modern-banner-container">
1322    <div style="width:100%; text-align:center">
1323        <ins data-cukp-zoneid="91" data-cukp-id="636145c2380e065631f11ea3a8bd6418"></ins>
1324    </div>
1325</div>
1326
1327<script>
1328(function() {
1329    'use strict';
1330    
1331    // Detect Safari
1332    var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
1333    
1334    if (window.innerWidth <= 768) return;
1335    
1336    var ad = document.querySelector('.modern-banner-container');
1337    if (!ad) return;
1338
1339    // Gap to leave between the bottom of the sticky top nav and the ad.
1340    var GAP = 16;
1341
1342    // The main nav (.cuk-nav-bar) is sticky at top:0 on desktop. Measure its
1343    // live height each time so the ad parks just below it (never under it).
1344    // Returns just the gap when the nav isn't present/visible (e.g. the
1345    // tablet hamburger range, where nothing is stuck to the top).
1346    function getStickTop() {
1347        var nav = document.querySelector('.cuk-nav-bar');
1348        var navH = 0;
1349        if (nav) {
1350            var cs = window.getComputedStyle(nav);
1351            if (cs.display !== 'none' && cs.visibility !== 'hidden') {
1352                navH = nav.getBoundingClientRect().height;
1353            }
1354        }
1355        return Math.round(navH) + GAP;
1356    }
1357
1358    var placeholder = null;
1359    var isStuck = false;
1360    var initialTop = 0;
1361    var initialLeft = 0;
1362    var initialWidth = 0;
1363    var initialHeight = 0;
1364    var initialized = false;
1365    
1366    // Create placeholder
1367    placeholder = document.createElement('div');
1368    placeholder.className = 'sticky-placeholder';
1369    placeholder.style.cssText = 'display:none;visibility:hidden;';
1370    ad.parentNode.insertBefore(placeholder, ad);
1371    
1372    // Fix Safari parent overflow issues
1373    function fixParentOverflow() {
1374        var parent = ad.parentElement;
1375        var count = 0;
1376        while (parent && count < 10) {
1377            var style = window.getComputedStyle(parent);
1378            if (style.overflow === 'hidden' || style.overflowY === 'hidden') {
1379                parent.style.overflow = 'visible';
1380            }
1381            parent = parent.parentElement;
1382            count++;
1383        }
1384    }
1385    
1386    function getScrollY() {
1387        return window.pageYOffset || window.scrollY || document.documentElement.scrollTop || 0;
1388    }
1389    
1390    function measure() {
1391        if (isStuck) return;
1392        var rect = ad.getBoundingClientRect();
1393        initialTop = rect.top + getScrollY();
1394        initialLeft = rect.left;
1395        initialWidth = rect.width;
1396        initialHeight = rect.height;
1397        placeholder.style.height = initialHeight + 'px';
1398        placeholder.style.width = initialWidth + 'px';
1399    }
1400    
1401    function stick() {
1402        if (isStuck) return;
1403        
1404        placeholder.style.display = 'block';
1405        placeholder.style.visibility = 'visible';
1406        placeholder.className = 'sticky-placeholder active';
1407        
1408        var stickTop = getStickTop();
1409        ad.style.cssText = 'position:fixed !important; top:' + stickTop + 'px !important; left:' + initialLeft + 'px !important; width:' + initialWidth + 'px !important; margin:0 !important; z-index:1031 !important; -webkit-transform:translateZ(0); transform:translateZ(0);';
1410        ad.classList.add('is-stuck');
1411        
1412        // Force Safari repaint
1413        if (isSafari) {
1414            ad.style.display = 'none';
1415            ad.offsetHeight; // Force reflow
1416            ad.style.display = '';
1417        }
1418        
1419        isStuck = true;
1420    }
1421    
1422    function unstick() {
1423        if (!isStuck) return;
1424        
1425        ad.style.cssText = '';
1426        ad.classList.remove('is-stuck');
1427        
1428        placeholder.style.display = 'none';
1429        placeholder.style.visibility = 'hidden';
1430        placeholder.className = 'sticky-placeholder';
1431        
1432        isStuck = false;
1433        
1434        // Remeasure after layout settles
1435        setTimeout(measure, 100);
1436    }
1437    
1438    function checkPosition() {
1439        if (!initialized) return;
1440        var scrollY = getScrollY();
1441        // Trigger exactly where the ad will park, so it locks in below the nav
1442        // with no upward jump (which previously let it slip under the nav).
1443        var triggerPoint = initialTop - getStickTop();
1444        
1445        if (scrollY >= triggerPoint) {
1446            stick();
1447        } else {
1448            unstick();
1449        }
1450    }
1451    
1452    var scrollTimeout;
1453    function onScroll() {
1454        if (scrollTimeout) return;
1455        scrollTimeout = setTimeout(function() {
1456            scrollTimeout = null;
1457            checkPosition();
1458        }, 10);
1459    }
1460    
1461    // Initialize
1462    function init() {
1463        fixParentOverflow();
1464        measure();
1465        initialized = true;
1466        checkPosition();
1467    }
1468    
1469    // Wait for page to be ready
1470    if (document.readyState === 'complete') {
1471        setTimeout(init, 800);
1472    } else {
1473        window.addEventListener('load', function() {
1474            setTimeout(init, 800);
1475        });
1476    }
1477    
1478    // Use both scroll listeners for Safari compatibility
1479    window.addEventListener('scroll', onScroll, { passive: true });
1480    document.addEventListener('scroll', onScroll, { passive: true });
1481    
1482    // Handle resize
1483    var resizeTimer;
1484    window.addEventListener('resize', function() {
1485        clearTimeout(resizeTimer);
1486        resizeTimer = setTimeout(function() {
1487            if (window.innerWidth <= 768) { unstick(); return; }
1488            unstick();
1489            setTimeout(init, 100);
1490        }, 200);
1491    });
1492})();
1493</script>
1493</div>
1494          </div>
1495
1496    </div>
1497  </div>
1498
1499
1500              </div>
1501            </aside>
1502        </div>
1503        
1504        <div class="col-lg-7">
1505          
1506            <div id="block-cuk-bs-content" class="block block-system block-system-main-block">
1507  
1508    
1509      <div class="content">
1510      
1511
1512<article data-history-node-id="13105" class="node node--type-landing-page node--view-mode-full clearfix">
1513  <header>
1514    
1515        
1516      </header>
1517  <div class="node__content clearfix">
1518    
1519
1520
1521      <div class="field field--name-field-landpage-content field--type-entity-reference-revisions field--label-hidden field__items">
1522              <div class="field__item">  <div class="paragraph paragraph--type--landpage-body paragraph--view-mode--default">
1523          
1524            <div class="clearfix text-formatted field field--name-field-landpage-body field--type-text-long field--label-hidden field__item"><style>
1525/* =============================================================
1526   ContractorUK homepage — unified design system
1527   Tokens are scoped to .contractor-section so nothing leaks.
1528   Class hooks are preserved for the news/guides JS widget.
1529   ============================================================= */
1530.latest-news-section:not(#cuk-news-modern) { display: none !important; }
1531@media (max-width: 768px) {
1532    .sidebar-right,
1533    .col-lg-2.sidebar-right,
1534    .partners-sidebar,
1535    .guides-sidebar,
1536    .block-views-blocklatest-guides-block-1,
1537    .block-views-blockpartners-block-1 { display: none !important; }
1538}
1539
1540.contractor-section,
1541.partners-block,
1542.latest-news-section {
1543    --ink:        #0d1426;
1544    --ink-soft:   #2a3346;
1545    --body:       #4a5567;
1546    --muted:      #8a93a3;
1547    --line:       #e9ecf1;
1548    --line-2:     #e1e5ec;
1549    --surface:    #ffffff;
1550    --tint:       #f4f6f9;
1551    --accent:     #1a1f3a;
1552    --accent-2:   #2d3454;
1553    --orange:     #ff6600;
1554    --teal:       #2c5f5d;
1555    --cuk-green:      #9bcb3c;
1556    --cuk-green-dark: #82b02b;
1557    --radius:     16px;
1558    --radius-sm:  10px;
1559    --radius-pill: 999px;
1560    --shadow:     0 1px 2px rgba(13,20,38,.04), 0 2px 6px rgba(13,20,38,.05);
1561    --shadow-md:  0 10px 28px -14px rgba(13,20,38,.30), 0 4px 10px -6px rgba(13,20,38,.12);
1562    --ring:       inset 0 0 0 1px var(--line);
1563    --font:       -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Inter, Helvetica, Arial, sans-serif;
1564
1565    font-family: var(--font);
1566    background: linear-gradient(180deg, #fbfcfe 0%, #f4f6fa 100%);
1567    border-radius: 20px;
1568    border: 1px solid var(--line);
1569    max-width: 100%;
1570    box-sizing: border-box;
1571    overflow: hidden;
1572    -webkit-font-smoothing: antialiased;
1573    color: var(--body);
1574}
1575.contractor-section {
1576    padding: 26px 26px 16px;
1577    margin: -8px 0 8px 0;
1578}
1579.field--name-body > *:first-child { margin-top: 0 !important; padding-top: 0 !important; }
1580.node__content > *:first-child { margin-top: 0 !important; padding-top: 0 !important; }
1581
1582/* ---------- Intro lede ---------- */
1583.contractor-intro {
1584    text-align: center;
1585    margin: 2px auto 26px;
1586    padding: 0 16px;
1587    max-width: 760px;
1588}
1589.contractor-intro h1 {
1590    font-size: 16px;
1591    font-weight: 500;
1592    font-style: normal;
1593    color: var(--ink-soft);
1594    line-height: 1.6;
1595    margin: 0 auto;
1596    max-width: 720px;
1597    text-align: center;
1598    letter-spacing: -.005em;
1599}
1600.contractor-intro p {
1601    font-size: 13.5px;
1602    font-weight: 400;
1603    font-style: normal;
1604    color: var(--muted);
1605    line-height: 1.65;
1606    margin: 8px auto 0;
1607    max-width: 700px;
1608}
1609
1610/* ---------- Services grid ---------- */
1611.services-grid-wrapper { position: relative; }
1612.scroll-hint { display: none; }
1613.services-grid {
1614    display: grid;
1615    grid-template-columns: repeat(3, 1fr);
1616    grid-auto-rows: 1fr;
1617    gap: 12px;
1618    margin: 0 auto 8px;
1619    max-width: 1200px;
1620}
1621.service-card,
1622.budget-2025-card {
1623    position: relative;
1624    background: var(--surface);
1625    border-radius: var(--radius);
1626    padding: 15px 12px;
1627    text-align: center;
1628    display: flex;
1629    flex-direction: column;
1630    align-items: center;
1631    justify-content: center;
1632    gap: 9px;
1633    box-shadow: var(--shadow);
1634    border: 1px solid var(--line);
1635    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
1636    text-decoration: none;
1637    color: inherit;
1638    overflow: hidden;
1639}
1640/* Kill the theme's blue indigo shine-sweep (::before) — no fade/blue on hover. */
1641.service-card::before,
1642.budget-2025-card::before { content: none !important; display: none !important; background: none !important; }
1643.service-card:hover,
1644.budget-2025-card:hover {
1645    transform: translateY(-2px);
1646    box-shadow: var(--shadow-md);
1647    border-color: var(--line-2);
1648    text-decoration: none;
1649    color: inherit;
1650}
1651.service-card img,
1652.budget-2025-card img {
1653    width: 48px;
1654    height: 48px;
1655    object-fit: contain;
1656    border-radius: var(--radius-sm);
1657    flex-shrink: 0;
1658    transition: none;
1659    margin-bottom: 0;
1660}
1661.service-card:hover img,
1662.budget-2025-card:hover img { transform: none; }
1663.service-card h3,
1664.budget-2025-card h3 {
1665    font-size: 12px;
1666    font-weight: 600;
1667    color: var(--ink);
1668    margin: 0;
1669    line-height: 1.3;
1670    letter-spacing: -.005em;
1671}
1672.service-card[href*="/calculators"] img { filter: grayscale(100%); }
1673.service-card[href*="/calculators"]:hover img { filter: grayscale(100%); transform: none; }
1674.budget-2025-card { box-shadow: 0 1px 2px rgba(13,20,38,.05), 0 4px 14px -6px rgba(26,31,58,.18); }
1675.budget-2025-card h3 { font-weight: 700; }
1676
1677/* ---------- Featured partner strips ---------- */
1678.featured-partner {
1679    display: block;
1680    background: var(--surface);
1681    border: 1px solid var(--line);
1682    border-radius: var(--radius);
1683    padding: 10px 16px;
1684    margin-top: 12px;
1685    text-decoration: none !important;
1686    color: inherit !important;
1687    box-shadow: var(--shadow);
1688    transition: box-shadow .22s ease, transform .22s cubic-bezier(.2,.7,.3,1), border-color .22s ease;
1689    position: relative;
1690    overflow: hidden;
1691}
1692.featured-partner::before {
1693    content: '';
1694    position: absolute;
1695    left: 0; top: 0; bottom: 0;
1696    width: 3px;
1697    background: var(--accent);
1698}
1699.featured-partner:first-of-type { margin-top: 16px; }
1700.featured-partner:hover {
1701    box-shadow: var(--shadow-md);
1702    transform: translateY(-2px);
1703    border-color: var(--line-2);
1704    text-decoration: none !important;
1705    color: inherit !important;
1706}
1707.featured-partner__label {
1708    display: inline-block;
1709    font-size: 9px;
1710    font-weight: 700;
1711    text-transform: uppercase;
1712    letter-spacing: .08em;
1713    color: #fff;
1714    padding: 2px 7px;
1715    border-radius: var(--radius-pill);
1716    margin-right: 8px;
1717    vertical-align: middle;
1718}
1719.featured-partner__name {
1720    font-size: 13px;
1721    font-weight: 700;
1722    color: var(--ink);
1723    margin: 0;
1724    display: inline;
1725    letter-spacing: -.01em;
1726}
1727.featured-partner__desc {
1728    font-size: 12px;
1729    color: var(--body);
1730    line-height: 1.45;
1731    margin: 3px 0 0;
1732}
1733.featured-partner__desc strong { font-weight: 700; }
1734.featured-partner--markel::before { background: var(--orange); }
1735.featured-partner--markel .featured-partner__label { background: var(--orange); }
1736.featured-partner--markel .featured-partner__desc strong { color: var(--orange); }
1737.featured-partner--ff::before { background: var(--teal); }
1738.featured-partner--ff .featured-partner__label { background: var(--teal); }
1739.featured-partner--ff .featured-partner__desc strong { color: var(--teal); }
1740.featured-partner-rotator .featured-partner { margin-top: 16px; }
1741.featured-partner-rotator .featured-partner + .featured-partner { margin-top: 0; }
1742
1743/* ---------- Partners block ---------- */
1744.partners-block {
1745    margin: 18px 0 8px 0;
1746    padding: 12px 18px 14px;
1747}
1748.partners-block .partners-block__label {
1749    margin: 0 0 10px;
1750    font-size: 11px;
1751    font-weight: 700;
1752    color: var(--ink);
1753    text-transform: uppercase;
1754    letter-spacing: .14em;
1755    display: flex;
1756    align-items: center;
1757    gap: 10px;
1758}
1759.partners-block .partners-block__label::before {
1760    content: '';
1761    display: inline-block;
1762    width: 6px;
1763    height: 6px;
1764    background: var(--accent);
1765    border-radius: 50%;
1766    flex-shrink: 0;
1767    box-shadow: 0 0 0 4px rgba(26,31,58,.08);
1768}
1769.partners-block .featured-partner-rotator { margin: 0; }
1770.partners-block .featured-partner-rotator .featured-partner { margin-top: 0; }
1771.partners-block > .featured-partner { margin-top: 12px; }
1772.partners-block > .featured-partner:first-of-type { margin-top: 12px; }
1773
1774/* ---------- Latest news & guides ---------- */
1775.latest-news-section {
1776    margin: 18px 0 8px 0;
1777    padding: 24px 26px 30px;
1778    font-family: var(--font);
1779    border: none;
1780    box-shadow: 0 10px 30px -20px rgba(13,20,38,.28);
1781}
1782.news-header {
1783    margin-bottom: 16px;
1784    padding-bottom: 0;
1785    border-bottom: none;
1786    display: flex;
1787    align-items: center;
1788    justify-content: space-between;
1789    gap: 16px;
1790}
1791.news-title {
1792    margin: 0;
1793    font-size: 12px;
1794    font-weight: 700;
1795    color: var(--ink);
1796    text-transform: uppercase;
1797    letter-spacing: .14em;
1798    display: flex;
1799    align-items: center;
1800    gap: 10px;
1801}
1802.news-title::before {
1803    content: '';
1804    display: inline-block;
1805    width: 6px;
1806    height: 6px;
1807    background: var(--accent);
1808    border-radius: 50%;
1809    flex-shrink: 0;
1810    box-shadow: 0 0 0 4px rgba(26,31,58,.08);
1811}
1812.news-subtitle {
1813    color: var(--muted);
1814    margin: 0;
1815    font-size: 12px;
1816    font-weight: 400;
1817    font-style: normal;
1818    letter-spacing: 0;
1819    white-space: normal;
1820    overflow-wrap: break-word;
1821    min-width: 0;
1822}
1823.view-links {
1824    display: flex;
1825    justify-content: center;
1826    gap: 14px;
1827    margin: 26px 0 0;
1828    padding-bottom: 0;
1829}
1830.view-link {
1831    font-weight: 600;
1832    text-decoration: none !important;
1833    color: var(--ink) !important;
1834    background: var(--surface);
1835    border: 1px solid var(--line-2);
1836    font-size: 13.5px;
1837    padding: 11px 22px;
1838    border-radius: var(--radius-pill);
1839    box-shadow: var(--shadow);
1840    transition: background .2s, transform .18s cubic-bezier(.2,.7,.3,1), box-shadow .2s, border-color .2s;
1841    display: inline-block;
1842}
1843.view-link:hover {
1844    background: var(--accent);
1845    color: #fff !important;
1846    border-color: var(--accent);
1847    transform: translateY(-2px);
1848    box-shadow: var(--shadow-md);
1849    text-decoration: none !important;
1850}
1851.is-hidden { display: none !important; }
1852
1853#news-list {
1854    display: flex;
1855    flex-direction: column;
1856    gap: 12px;
1857}
1858#news-list .news-item {
1859    display: block;
1860    padding: 16px 18px;
1861    background: var(--surface);
1862    border: 1px solid var(--line);
1863    border-radius: var(--radius);
1864    color: inherit;
1865    box-shadow: var(--shadow);
1866    transition: box-shadow .22s ease, transform .22s cubic-bezier(.2,.7,.3,1), border-color .22s ease;
1867}
1868#news-list .news-item:hover {
1869    box-shadow: var(--shadow-md);
1870    transform: translateY(-3px);
1871    border-color: var(--line-2);
1872}
1873#news-list .news-item__link {
1874    display: block;
1875    text-decoration: none;
1876    color: inherit;
1877}
1878#news-list .news-item__link:hover { text-decoration: none; color: inherit; }
1879
1880/* Thumbnail + body layout */
1881#news-list .news-item.has-media .news-item__link {
1882    display: flex;
1883    gap: 16px;
1884    align-items: stretch;
1885}
1886#news-list .news-item__media {
1887    flex: 0 0 116px;
1888    width: 116px;
1889    border-radius: 10px;
1890    overflow: hidden;
1891    background: var(--tint);
1892    align-self: stretch;
1893}
1894#news-list .news-item__media img {
1895    display: block;
1896    width: 100%;
1897    height: 100%;
1898    min-height: 86px;
1899    object-fit: cover;
1900    transition: transform .3s cubic-bezier(.2,.7,.3,1);
1901}
1902#news-list .news-item:hover .news-item__media img { transform: scale(1.05); }
1903#news-list .news-item__body {
1904    flex: 1 1 auto;
1905    min-width: 0;
1906}
1907#news-list .news-author__link {
1908    color: var(--ink);
1909    text-decoration: none;
1910    font-weight: 600;
1911}
1912#news-list .news-author__link:hover { text-decoration: underline; }
1913
1914/* Featured first item */
1915#news-list .news-item:first-child {
1916    padding: 20px;
1917    background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
1918    border-color: var(--line-2);
1919}
1920#news-list .news-item:first-child.has-media .news-item__media {
1921    flex: 0 0 210px;
1922    width: 210px;
1923}
1924#news-list .news-item:first-child.has-media .news-item__media img { min-height: 130px; }
1925#news-list .news-item:first-child .news-headline {
1926    font-size: 21px;
1927    line-height: 1.3;
1928    letter-spacing: -.018em;
1929}
1930
1931#news-list .news-meta {
1932    display: flex;
1933    gap: 8px;
1934    align-items: center;
1935    flex-wrap: wrap;
1936    margin-bottom: 10px;
1937}
1938#news-list .news-date {
1939    display: inline-block;
1940    padding: 4px 11px;
1941    border-radius: var(--radius-pill);
1942    background: var(--tint);
1943    color: #5d6b82;
1944    font-size: 10.5px;
1945    font-weight: 600;
1946    text-transform: uppercase;
1947    letter-spacing: .05em;
1948}
1949#news-list .news-category {
1950    display: inline-block;
1951    padding: 4px 11px;
1952    border-radius: var(--radius-pill);
1953    font-size: 10.5px;
1954    font-weight: 700;
1955    text-transform: uppercase;
1956    letter-spacing: .05em;
1957}
1958#news-list .news-category--news    { background: #eceef5; color: #1a1f3a; }
1959#news-list .news-category--comment { background: #fff4e6; color: #b45309; }
1960#news-list .news-category--guide   { background: #e9f7ef; color: #15803d; }
1961#news-list .news-featured-badge {
1962    display: inline-block;
1963    padding: 4px 11px;
1964    border-radius: var(--radius-pill);
1965    font-size: 10.5px;
1966    font-weight: 800;
1967    text-transform: uppercase;
1968    letter-spacing: .06em;
1969    background: var(--cuk-green-dark);
1970    color: #fff;
1971    box-shadow: 0 2px 8px rgba(130,176,43,.35);
1972}
1973#news-list .news-item--pinned,
1974#news-list .news-item--pinned:first-child {
1975    border-color: rgba(155,203,60,.55);
1976}
1977#news-list .news-item--pinned:hover { border-color: rgba(130,176,43,.75); }
1978#news-list .news-headline {
1979    margin: 0 0 8px;
1980    font-size: 18px;
1981    line-height: 1.4;
1982    color: var(--ink);
1983    font-weight: 700;
1984    letter-spacing: -.012em;
1985}
1986#news-list .news-excerpt {
1987    margin: 0 0 10px;
1988    font-size: 14px;
1989    line-height: 1.62;
1990    color: var(--body);
1991}
1992#news-list .news-author {
1993    display: block;
1994    text-align: right;
1995    font-size: 12px;
1996    color: var(--muted);
1997    font-weight: 500;
1998    margin-top: 10px;
1999}
2000
2001/* ---------- Inline newsletter ---------- */
2002.nl-inline {
2003    display: flex;
2004    align-items: center;
2005    gap: 16px;
2006    padding: 18px 22px;
2007    background: var(--accent);
2008    background: linear-gradient(135deg, #14182f 0%, #232a4d 100%);
2009    border-radius: var(--radius);
2010    box-shadow: var(--shadow);
2011}
2012.nl-inline__text {
2013    font-size: 13.5px;
2014    font-weight: 600;
2015    color: #eef0f6;
2016    white-space: nowrap;
2017    letter-spacing: -.005em;
2018}
2019.nl-inline__form {
2020    display: flex;
2021    gap: 8px;
2022    flex: 1;
2023    min-width: 0;
2024    position: relative;
2025}
2026.nl-inline__input {
2027    flex: 1;
2028    min-width: 0;
2029    padding: 9px 14px;
2030    border: 1px solid rgba(255,255,255,.18);
2031    border-radius: var(--radius-sm);
2032    background: rgba(255,255,255,.07);
2033    font-size: 13px;
2034    color: #fff;
2035    transition: border-color .2s, background .2s;
2036}
2037.nl-inline__input::placeholder { color: rgba(255,255,255,.5); }
2038.nl-inline__input:focus {
2039    outline: none;
2040    border-color: rgba(255,255,255,.55);
2041    background: rgba(255,255,255,.12);
2042}
2043.nl-inline__btn {
2044    padding: 9px 18px;
2045    border: 0;
2046    border-radius: var(--radius-sm);
2047    background: #fff;
2048    color: var(--ink);
2049    font-size: 13px;
2050    font-weight: 700;
2051    cursor: pointer;
2052    line-height: 1;
2053    transition: background .2s, transform .15s, color .2s;
2054}
2055.nl-inline__btn:hover { background: var(--cuk-green); color: #fff; transform: translateY(-1px); }
2056@media (max-width: 640px) {
2057    .nl-inline { flex-direction: column; align-items: stretch; gap: 12px; padding: 16px; }
2058    .nl-inline__text { white-space: normal; text-align: center; }
2059}
2060
2061/* ---------- Responsive ---------- */
2062@media (max-width: 992px) {
2063    .services-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
2064}
2065@media (max-width: 768px) {
2066    .contractor-section { padding: 22px 14px 18px; margin: -24px 0 0 0; border-radius: 0; border-left: none; border-right: none; border-top: none; background: linear-gradient(180deg, #fbfcfe 0%, #f4f6fa 100%); }
2067    .partners-block { padding: 16px 14px; margin: 10px 0 0 0; border-radius: 0; border-left: none; border-right: none; }
2068    .latest-news-section { padding: 22px 14px 20px; margin: 12px 0 0 0; border-radius: 0; border-left: none; border-right: none; }
2069    .contractor-intro { padding: 0 6px; margin-bottom: 14px; }
2070    .contractor-intro h1 { font-size: 13.5px; line-height: 1.55; }
2071
2072    .services-grid-wrapper { position: relative; }
2073    .services-grid-wrapper::after {
2074        content: '';
2075        position: absolute;
2076        top: 0; right: 0; bottom: 0;
2077        width: 40px;
2078        background: linear-gradient(to right, transparent, rgba(246,248,251,.96));
2079        pointer-events: none;
2080        z-index: 2;
2081    }
2082    .scroll-hint {
2083        display: flex !important;
2084        align-items: center;
2085        gap: 4px;
2086        font-size: 11px;
2087        color: var(--muted);
2088        margin-bottom: 8px;
2089        padding-left: 4px;
2090        animation: nudge 2s ease-in-out infinite;
2091    }
2092    @keyframes nudge {
2093        0%, 100% { transform: translateX(0); }
2094        50% { transform: translateX(4px); }
2095    }
2096    .scroll-hint svg { width: 14px; height: 14px; fill: var(--muted); }
2097
2098    .services-grid {
2099        display: flex;
2100        overflow-x: auto;
2101        scroll-snap-type: x proximity;
2102        -webkit-overflow-scrolling: touch;
2103        gap: 10px;
2104        padding: 0 0 8px;
2105        margin: 0 -14px 14px;
2106        padding-left: 14px;
2107    }
2108    .services-grid::-webkit-scrollbar { display: none; }
2109    .service-card, .budget-2025-card {
2110        flex: 0 0 28vw;
2111        min-width: 96px;
2112        max-width: 118px;
2113        scroll-snap-align: start;
2114        padding: 15px 8px;
2115        gap: 9px;
2116    }
2117    .service-card img, .budget-2025-card img { width: 44px; height: 44px; }
2118    .service-card h3, .budget-2025-card h3 { font-size: 11px; line-height: 1.25; }
2119    .services-grid::after { content: ''; flex: 0 0 40px; }
2120
2121    .news-header { flex-direction: column; align-items: flex-start; gap: 6px; }
2122    .news-subtitle { white-space: normal; font-size: 11.5px; line-height: 1.45; }
2123
2124    #news-list .news-item { padding: 12px; }
2125    #news-list .news-item:first-child { padding: 12px; }
2126    #news-list .news-item:first-child .news-headline { font-size: 16px; }
2127    #news-list .news-headline { font-size: 15px; }
2128    #news-list .news-excerpt { display: none; }
2129    #news-list .news-author { display: none; }
2130
2131    #news-list .news-item.has-media .news-item__link { gap: 12px; }
2132    #news-list .news-item__media,
2133    #news-list .news-item:first-child.has-media .news-item__media { flex: 0 0 92px; width: 92px; }
2134    #news-list .news-item__media img,
2135    #news-list .news-item:first-child.has-media .news-item__media img { min-height: 64px; }
2136
2137    .featured-partner { margin-left: -2px; margin-right: -2px; }
2138    .view-links { padding: 0 4px; flex-wrap: wrap; }
2139
2140    .hide-on-mobile { display: none; }
2141}
2142@media (min-width: 769px) { .show-on-mobile { display: none; } }
2143.service-card__jobs-count{display:block;font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.02em;margin-top:2px;}
2144
2145
2146/* These three exist only below 768px; desktop keeps its original markup. */
2147.contractor-intro__mobh, .contractor-intro__sub, .cuk-grp,
2148.cuk-ico, .cuk-hero-art, .cuk-jobs-art { display: none; }
2149
2150/* ---- Mobile homepage, rebuilt 6 Aug 2026 ---------------------------
2151   The old phone layout led with a 55-word H1 over a horizontal swipe
2152   strip that hid thirteen destinations, and put the news — the reason
2153   most people arrive — three screens down.
2154
2155   Now: an illustrated hero, one product card, then the destinations as
2156   grouped two-up cards, then the news. Desktop is untouched — every
2157   rule below is inside the media query. */
2158@media (max-width: 768px) {
2159
2160  /* --- Hero band ---------------------------------------------------
2161     The skyline is a Higgsfield render (nano banana, 7 Aug) hosted at
2162     /images/hp-icons/cuk/hero-skyline2.jpg (green accents). It paints only the top of
2163     the section (100% wide, ~2:3 height), and its own near-white foot
2164     dissolves into the gradient the rest of the section carries. */
2165  .contractor-section {
2166    position: relative;
2167    overflow: hidden;
2168    padding: 26px 16px 20px !important;
2169    /* Full-bleed out of the page container's gutters. The section's own
2170       width is pinned at 100%, so widen it to the viewport explicitly —
2171       negative margins alone only shift it left. */
2172    margin: 0 0 0 calc(50% - 50vw) !important;
2173    width: 100vw !important;
2174    max-width: 100vw !important;
2175    border: 0 !important;
2176    border-radius: 0 !important;
2177    /* The gradient's stops track the image foot (image height = 67vw)
2178       so the hand-off from its near-white base to the card background
2179       has no visible seam at any phone width. */
2180    background:
2181      url('https://www.contractoruk.com/images/hp-icons/cuk/hero-skyline2.jpg') top center / 100% auto no-repeat,
2182      linear-gradient(180deg,
2183        #fdfdfe 0px,
2184        #fdfdfe calc(67vw - 14px),
2185        #eef1f6 calc(67vw + 70px),
2186        #f1f4f8 100%) !important;
2187  }
2188  .cuk-hero-art { display: none !important; }
2189
2190  /* The image is 100vw wide and 67vw tall; hold the intro open to
2191     roughly that so the first card lands below the skyline, not on it. */
2192  .contractor-intro { position: relative; z-index: 1; padding: 0;
2193    margin-bottom: 22px; min-height: 57vw; text-align: left; }
2194  .contractor-intro h1 { display: none !important; }
2195  .contractor-intro .contractor-intro__mobh {
2196    display: block !important;
2197    font-family: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
2198    font-size: 31px !important; font-weight: 700 !important; line-height: 1.06 !important;
2199    letter-spacing: -0.03em; color: #1f2c3d !important;
2200    text-align: left; margin: 0 0 11px; max-width: 11ch;
2201  }
2202  .contractor-intro .contractor-intro__sub {
2203    display: block !important; font-size: 14px !important; line-height: 1.5 !important;
2204    color: #5b6b7c !important; margin: 0; text-align: left; max-width: 30ch;
2205  }
2206
2207  /* --- The destination grid ---------------------------------------- */
2208  .services-grid {
2209    display: grid !important;
2210    grid-template-columns: 1fr 1fr;
2211    grid-auto-rows: auto !important; /* the strip's 1fr rows force 128px everywhere */
2212    gap: 11px;
2213    overflow: visible !important;
2214    margin: 0 !important;
2215    padding: 0 !important;
2216  }
2217  /* The strip's edge-fade pseudo-elements become PHANTOM GRID ITEMS here
2218     (order 0 = an empty first row) — kill them on the grid too. */
2219  .services-grid::after, .services-grid::before,
2220  .services-grid-wrapper::after,
2221  .services-grid-wrapper::before { display: none !important; content: none !important; }
2222  .scroll-hint, .show-on-mobile { display: none !important; }
2223
2224  .service-card, .budget-2025-card {
2225    display: flex !important;
2226    flex-direction: row !important;
2227    align-items: center !important;
2228    justify-content: flex-start !important;
2229    text-align: left !important;
2230    gap: 11px !important;
2231    width: auto !important; max-width: none !important; min-width: 0 !important;
2232    min-height: 0 !important; flex: none !important;
2233    background: #fff !important;
2234    border: 0 !important;
2235    border-radius: 14px !important;
2236    box-shadow: 0 1px 2px rgba(15, 24, 37, .05), 0 6px 16px -8px rgba(15, 24, 37, .16) !important;
2237    padding: 13px 12px !important;
2238    position: relative;
2239    scroll-snap-align: none;
2240  }
2241  .service-card:active { transform: translateY(1px); }
2242  .service-card img:not(.cuk-ico),
2243  .budget-2025-card img:not(.cuk-ico) { display: none !important; }
2244  .service-card::after, .budget-2025-card::after { content: none !important; }
2245
2246  /* The icon sits in a tinted tile, which is what stops a two-up grid
2247     of plain labels reading as a spreadsheet. */
2248  .cuk-ico {
2249    display: block !important;
2250    flex: 0 0 44px; width: 44px !important; height: 44px !important;
2251    padding: 0; box-sizing: border-box;
2252    background: #eef1f6; border-radius: 11px;
2253    object-fit: cover;
2254  }
2255  .service-card h3, .budget-2025-card h3 {
2256    font-size: 14px !important; font-weight: 600 !important;
2257    line-height: 1.25 !important; color: #22303f !important;
2258    margin: 0 !important; text-align: left !important; flex: 1 1 auto;
2259  }
2260
2261  /* --- Contract Jobs: the product, full width, with its own art -----
2262     Source order is img, title, count. The count sits on its own line under the title. */
2263  .services-grid .service-card--jobs {
2264    grid-column: 1 / -1;
2265    display: flex !important;
2266    flex-direction: row !important;
2267    flex-wrap: wrap !important;
2268    align-items: center !important;
2269    align-content: center !important;
2270    gap: 0 !important;
2271    background: linear-gradient(135deg, #233245 0%, #16202e 100%) !important;
2272    background-color: #1f2c3d !important;
2273    border-radius: 14px !important;
2274    padding: 13px 96px 13px 16px !important;
2275    min-height: 0 !important;
2276    margin: 0 0 22px !important;
2277    box-shadow: 0 10px 22px -12px rgba(15, 24, 37, .5) !important;
2278    overflow: hidden;
2279  }
2280  .services-grid .service-card--jobs .cuk-ico { display: none !important; }
2281  .services-grid .service-card--jobs h3 {
2282    order: 1; flex: 0 0 auto;
2283    font-family: 'Space Grotesk', -apple-system, BlinkMacSystemFont, sans-serif;
2284    font-size: 17px !important; font-weight: 700 !important;
2285    line-height: 1.15 !important; letter-spacing: -0.02em;
2286    color: #fff !important; margin: 0 !important;
2287  }
2288  .services-grid .service-card--jobs .service-card__jobs-count {
2289    order: 3; flex: 1 0 100%;
2290    font-size: 12.5px !important; font-weight: 500;
2291    color: #9bcb3c !important; font-variant-numeric: tabular-nums;
2292    margin-top: 3px;
2293  }
2294  .cuk-jobs-art {
2295    display: block; position: absolute;
2296    right: 14px; top: 50%; transform: translateY(-50%);
2297    width: 76px; height: 63px; pointer-events: none;
2298  }
2299  .cuk-jobs-art svg { width: 100%; height: 100%; }
2300
2301  /* --- Group labels ------------------------------------------------ */
2302  .cuk-grp {
2303    display: block !important; width: 100%;
2304    grid-column: 1 / -1;
2305    margin: 22px 0 2px; padding: 0;
2306    font-size: 12px; font-weight: 800; letter-spacing: .12em;
2307    text-transform: uppercase; color: #8a97a5;
2308  }
2309  .cuk-grp:first-of-type { margin-top: 2px; }
2310
2311  /* Order: product, then each labelled group. */
2312  .services-grid a[href*="contract_jobs"] { order: 1; }
2313  .cuk-grp[data-for="calculators"] { order: 2; }
2314  .services-grid a[href*="calculators"] { order: 3; }
2315  .services-grid a[href*="ir35hub"] { order: 4; }
2316  .cuk-grp[data-for="contractor_accountants"] { order: 5; }
2317  .services-grid a[href*="contractor_accountants"] { order: 6; }
2318  .services-grid a[href*="contractor-bank-accounts"] { order: 7; }
2319  .services-grid a[href*="contractor-mortgages"] { order: 8; }
2320  .services-grid a[href*="contractor_pensions"] { order: 9; }
2321  .cuk-grp[data-for="umbrella_companies"] { order: 11; }
2322  .services-grid a[href*="umbrella_companies"] { order: 12; }
2323  .services-grid a[href*="virtual-offices"] { order: 13; }
2324  .services-grid a[href*="professional_indemnity"] { order: 14; }
2325  .services-grid a[href$="/insurance"] { order: 15; }
2326  .services-grid a[href*="08iwg84"] { order: 16; }
2327
2328  /* --- News list: same visual grammar as the tile grid --------------
2329     The widget ships its own panel look (slab shadow, pill dates, a
2330     featured first card with a 210px image). On phones it becomes the
2331     same card language as the destinations above: one tint background,
2332     white 14px-radius cards, square thumbs, chip tags. The widget's
2333     rules use #news-list (ID specificity), so these match it. */
2334  .latest-news-section {
2335    margin: 0 0 0 calc(50% - 50vw) !important;
2336    width: 100vw !important;
2337    max-width: 100vw !important;
2338    background: #f1f4f8 !important;
2339    border: 0 !important;
2340    box-shadow: none !important;
2341    border-radius: 0 !important;
2342    padding: 4px 16px 24px !important;
2343  }
2344  .news-header { margin-bottom: 10px !important; }
2345  .news-title {
2346    font-size: 12px !important; font-weight: 800 !important;
2347    letter-spacing: .12em !important; color: #8a97a5 !important;
2348    text-transform: uppercase !important; gap: 0 !important;
2349  }
2350  .news-title::before { display: none !important; }
2351  .news-subtitle { display: none !important; }
2352
2353  #news-list { gap: 11px !important; }
2354  #news-list .news-item,
2355  #news-list .news-item:first-child {
2356    padding: 12px !important;
2357    background: #fff !important;
2358    border: 0 !important;
2359    border-radius: 14px !important;
2360    box-shadow: 0 1px 2px rgba(15, 24, 37, .05), 0 6px 16px -8px rgba(15, 24, 37, .16) !important;
2361  }
2362  #news-list .news-item--pinned,
2363  #news-list .news-item--pinned:first-child { border: 0 !important; }
2364  #news-list .news-item:hover { transform: none !important; }
2365
2366  /* Square thumb, centred — not a portrait strip stretched to the
2367     card's full height. */
2368  #news-list .news-item.has-media .news-item__link {
2369    gap: 12px !important; align-items: center !important;
2370  }
2371  #news-list .news-item__media,
2372  #news-list .news-item:first-child.has-media .news-item__media {
2373    flex: 0 0 64px !important; width: 64px !important; height: 64px !important;
2374    border-radius: 11px !important; align-self: center !important;
2375  }
2376  #news-list .news-item__media img,
2377  #news-list .news-item:first-child.has-media .news-item__media img {
2378    width: 100% !important; height: 100% !important; min-height: 0 !important;
2379    object-fit: cover !important;
2380  }
2381
2382  #news-list .news-meta { gap: 6px !important; margin-bottom: 5px !important; }
2383  #news-list .news-date {
2384    background: none !important; padding: 0 !important;
2385    font-size: 10px !important; font-weight: 600 !important;
2386    letter-spacing: .06em !important; color: #8a97a5 !important;
2387  }
2388  #news-list .news-category, #news-list .news-featured-badge {
2389    font-size: 9px !important; font-weight: 800 !important;
2390    letter-spacing: .08em !important; padding: 4px 7px !important;
2391    border-radius: 5px !important; line-height: 1 !important;
2392  }
2393  #news-list .news-headline,
2394  #news-list .news-item:first-child .news-headline {
2395    font-size: 14.5px !important; font-weight: 600 !important;
2396    line-height: 1.3 !important; letter-spacing: -.01em !important;
2397    color: #22303f !important; margin: 0 !important;
2398  }
2399  #news-list .news-excerpt, #news-list .news-author { display: none !important; }
2400
2401  .view-links { margin: 16px 0 0 !important; gap: 10px !important; }
2402
2403  /* The partner rotator keeps the same tinted, full-bleed ground so
2404     the page below the hero reads as one surface. */
2405  .partners-block {
2406    margin: 0 0 0 calc(50% - 50vw) !important;
2407    width: 100vw !important;
2408    max-width: 100vw !important;
2409    background: #f1f4f8 !important;
2410    border: 0 !important;
2411    box-shadow: none !important;
2412    border-radius: 0 !important;
2413    padding: 0 16px 26px !important;
2414  }
2415
2416  /* --- Page tail: partner rows, newsletter, publications ------------
2417     Same card grammar as everything above; kills the widget's dark
2418     3px divider, the orange/green accent bars, and the blue button. */
2419  .latest-news-section::before { display: none !important; content: none !important; }
2420
2421  .partners-block__label {
2422    font-size: 12px !important; font-weight: 800 !important;
2423    letter-spacing: .12em !important; text-transform: uppercase !important;
2424    color: #8a97a5 !important; margin: 12px 0 10px !important; gap: 0 !important;
2425  }
2426  .partners-block__label::before { display: none !important; content: none !important; }
2427
2428  .featured-partner {
2429    display: block !important;
2430    background: #fff !important; border: 0 !important;
2431    border-radius: 14px !important;
2432    box-shadow: 0 1px 2px rgba(15, 24, 37, .05), 0 6px 16px -8px rgba(15, 24, 37, .16) !important;
2433    padding: 13px 14px !important; margin: 0 0 11px !important;
2434  }
2435  .featured-partner::before, .featured-partner::after { display: none !important; content: none !important; }
2436  .featured-partner__label {
2437    display: inline-block !important;
2438    background: #eef1f6 !important; color: #46586b !important;
2439    font-size: 9px !important; font-weight: 800 !important;
2440    letter-spacing: .08em !important; text-transform: uppercase !important;
2441    padding: 4px 7px !important; border-radius: 5px !important;
2442    line-height: 1 !important; margin: 0 0 7px !important;
2443  }
2444  .featured-partner__name {
2445    display: inline !important; font-size: 13.5px !important; font-weight: 600 !important;
2446    color: #22303f !important; line-height: 1.45 !important; margin: 0 !important;
2447  }
2448  .featured-partner__desc {
2449    font-size: 13px !important; color: #5b6b7c !important; line-height: 1.45 !important;
2450  }
2451  .featured-partner__desc strong { color: #46586b !important; font-weight: 600 !important; }
2452
2453  /* The bottom region joins the same tinted, full-bleed ground. */
2454  .mt-4 {
2455    /* -16px bridges the column's built-in gap so the tint is unbroken
2456       from the hero to the footer. */
2457    margin: -16px 0 0 calc(50% - 50vw) !important;
2458    width: 100vw !important; max-width: 100vw !important;
2459    background: #f1f4f8; padding: 14px 16px 22px;
2460  }
2461  .region-content-bottom { display: flex; flex-direction: column; gap: 12px; }
2462  .region-content-bottom .block { margin: 0 !important; }
2463
2464  /* Newsletter: white card, ink button, stacked form. */
2465  .cuku-nl {
2466    background: #fff !important; border: 0 !important;
2467    border-radius: 16px !important;
2468    box-shadow: 0 1px 2px rgba(15, 24, 37, .05), 0 6px 16px -8px rgba(15, 24, 37, .16) !important;
2469    padding: 18px 16px !important; margin: 0 !important; text-align: left !important;
2470  }
2471  .cuku-nl__title {
2472    font-size: 15.5px !important; font-weight: 700 !important;
2473    color: #22303f !important; letter-spacing: -.01em !important;
2474    line-height: 1.3 !important; margin: 0 0 12px !important;
2475  }
2476  .cuku-nl__form { flex-direction: column !important; gap: 9px !important; }
2477  .cuku-nl__input {
2478    width: 100% !important; height: 44px !important;
2479    border: 1px solid #e1e5ec !important; border-radius: 11px !important;
2480    font-size: 14px !important; padding: 0 14px !important;
2481  }
2482  .cuku-nl__input:focus {
2483    border-color: #9bcb3c !important;
2484    box-shadow: 0 0 0 3px rgba(155, 203, 60, .2) !important;
2485  }
2486  .cuku-nl__btn {
2487    width: 100% !important; padding: 12px !important;
2488    background: #1f2c3d !important; color: #fff !important;
2489    border-radius: 11px !important; font-size: 14px !important; font-weight: 600 !important;
2490  }
2491  .cuku-nl p, .cuku-nl__note, .cuku-nl__sub {
2492    font-size: 11.5px !important; color: #8a97a5 !important; text-align: left !important;
2493  }
2494
2495  /* Publications strip: quiet label, softened composite image. */
2496  .publications-section {
2497    border-top: 0 !important; padding: 4px 0 0 !important; text-align: left !important;
2498  }
2499  .publications-title {
2500    font-size: 11px !important; font-weight: 800 !important;
2501    letter-spacing: .1em !important; color: #8a97a5 !important;
2502    text-align: left !important; margin: 0 0 10px !important;
2503  }
2504  .publications-image { filter: grayscale(1) !important; opacity: .75 !important; border-radius: 10px; }
2505
2506  /* --- News before the partner rotator ----------------------------- */
2507  .paragraph--type--landpage-body .clearfix.text-formatted {
2508    display: flex; flex-direction: column;
2509  }
2510  .contractor-section { order: 1; }
2511  .latest-news-section { order: 2; }
2512  .partners-block { order: 3; }
2513}
2514</style>
2515<div class="contractor-section">
2516<div class="cuk-hero-art" aria-hidden="true">
2517<svg viewBox="0 0 320 200" fill="none" stroke="#ccd4de" stroke-width="1.6"
2518     stroke-linecap="round" stroke-linejoin="round">
2519  <path d="M232 190V70l8-14 8 14v120"/>
2520  <path d="M234 84h12M234 96h12"/>
2521  <circle cx="240" cy="58" r="9"/>
2522  <path d="M240 53v5l3 2"/>
2523  <path d="M240 44v-8"/>
2524  <path d="M262 190v-64h44v64"/>
2525  <path d="M262 138h44M262 152h44M262 166h44"/>
2526  <path d="M274 126V96c0-14 6-22 10-22s10 8 10 22v30"/>
2527  <path d="M274 108h20M276 118h16"/>
2528  <path d="M120 190v-46h26v46M174 190v-46h26v46"/>
2529  <path d="M133 144v-22l-13 22M187 144v-22l13 22"/>
2530  <path d="M146 160h28"/>
2531  <path d="M146 172c9-8 19-8 28 0"/>
2532  <path d="M120 160H96M200 160h24"/>
2533  <path d="M40 92c6-6 14-6 20 0M64 84c8-8 20-8 28 0"/>
2534  <path d="M150 66l16 16-8 8-16-16z"/>
2535  <path d="M142 74l-22 22a5 5 0 0 0 7 7l22-22"/>
2536  <path d="M186 60l10 10-26 26-10-10z"/>
2537  <path d="M160 86l-6 6 10 10 6-6"/>
2538</svg>
2539</div>
2540<div class="contractor-intro">
2541<p class="contractor-intro__mobh">Everything for the UK contractor</p>
2542<p class="contractor-intro__sub">Independent since 1999. Daily news, contract jobs, rates and calculators, and a 30,000-member forum.</p>
2543<h1>Contractor UK is home to the UK's IT contracting community. Online since 1999, offering daily news &amp; guides, contract jobs, rates, calculators &amp; an active forum with over 30,000 members. Contractor UK has everything for the successful contractor.</h1>
2544</div>
2545<div class="services-grid-wrapper">
2546
2547<div class="services-grid"><span class="cuk-grp" data-for="calculators">Tools &amp; guides</span><span class="cuk-grp" data-for="contractor_accountants">Money</span><span class="cuk-grp" data-for="umbrella_companies">Working set-up</span>
2548<a class="service-card service-card--jobs" href="https://www.contractoruk.com/contract_jobs"><img src="https://contractoruk.com/images/hp-icons/cuk/job.jpg" alt="Contract Jobs - 15,000+ live UK contract roles on the ContractorUK jobs board" width="65" height="65" loading="lazy"><h3>Contract Jobs</h3><span class="service-card__jobs-count">15,000+ live roles</span><span class="cuk-jobs-art" aria-hidden="true">
2549<svg viewBox="0 0 120 100" fill="none" stroke-linecap="round" stroke-linejoin="round">
2550  <rect x="14" y="10" width="86" height="70" rx="7"
2551        stroke="rgba(255,255,255,.55)" stroke-width="2.4"/>
2552  <path d="M14 26h86" stroke="rgba(255,255,255,.55)" stroke-width="2.4"/>
2553  <circle cx="24" cy="18" r="1.9" fill="rgba(255,255,255,.55)"/>
2554  <circle cx="32" cy="18" r="1.9" fill="rgba(255,255,255,.55)"/>
2555  <circle cx="40" cy="18" r="1.9" fill="rgba(255,255,255,.55)"/>
2556  <rect x="26" y="38" width="20" height="20" rx="4"
2557        stroke="rgba(255,255,255,.7)" stroke-width="2.4"/>
2558  <circle cx="36" cy="45" r="3.4" stroke="rgba(255,255,255,.7)" stroke-width="2.2"/>
2559  <path d="M30 55c1.6-3.4 10.4-3.4 12 0" stroke="rgba(255,255,255,.7)" stroke-width="2.2"/>
2560  <path d="M56 40h32M56 48h32M56 56h20" stroke="rgba(255,255,255,.5)" stroke-width="2.4"/>
2561  <circle cx="78" cy="66" r="19" fill="#16202e" stroke="#9bcb3c" stroke-width="2.8"/>
2562  <path d="M92 80l12 12" stroke="#9bcb3c" stroke-width="3.2"/>
2563  <text x="78" y="70" text-anchor="middle" font-family="system-ui,sans-serif"
2564        font-size="11" font-weight="700" fill="#9bcb3c">JOB</text>
2565</svg>
2566</span></a>
2567<a class="service-card" href="https://www.contractoruk.com/money/contractor-mortgages.html"><img class="cuk-ico" src="https://www.contractoruk.com/images/hp-icons/cuk/
2567ai/mortgages.jpg" alt="" width="80" height="80" loading="lazy"><img src="https://contractoruk.com/images/hp-icons/cuk/ContractorMortgage1.jpg" alt="Contractor Mortgages - Specialist mortgage advice for UK contractors" width="65" height="65" loading="lazy"><h3>Contractor Mortgages</h3></a>
2568<a class="service-card" href="https://www.contractoruk.com/money/contractor_pensions_advice.html"><img class="cuk-ico" src="https://www.contractoruk.com/images/hp-icons/cuk/ai/pensions.jpg" alt="" width="80" height="80" loading="lazy"><img src="https://contractoruk.com/images/hp-icons/cuk/ContractorPensions1.jpg" alt="Contractor Pensions - Pension planning for contractors" width="65" height="65" loading="lazy"><h3>Contractor Pensions</h3></a>
2569<a class="service-card" href="https://www.contractoruk.com/insurance/professional_indemnity.html"><img class="cuk-ico" src="https://www.contractoruk.com/images/hp-icons/cuk/ai/pi.jpg" alt="" width="80" height="80" loading="lazy"><img src="https://contractoruk.com/images/hp-icons/cuk/PIInsurance1.jpg" alt="Professional Indemnity Insurance for contractors" width="65" height="65" loading="lazy"><h3>PI Insurance</h3></a>
2570<a class="service-card" href="https://www.contractoruk.com/ct/08iwg84"><img class="cuk-ico" src="https://www.contractoruk.com/images/hp-icons/cuk/ai/closing.jpg" alt="" width="80" height="80" loading="lazy"><img src="https://contractoruk.com/images/hp-icons/cuk/InsolvencySolutions1.jpg" alt="MVL Solution - Members Voluntary Liquidation for contractors" width="65" height="65" loading="lazy"><h3>Closing Your Company</h3></a>
2571<a class="service-card" href="https://www.contractoruk.com/insurance"><img class="cuk-ico" src="https://contractoruk.com/images/hp-icons/cuk/ir35-1.jpg" alt="" width="80" height="80" loading="lazy"><img src="https://contractoruk.com/images/hp-icons/cuk/ir35-1.jpg" alt="Contractor Insurance - Professional indemnity, public liability and IR35 cover" width="65" height="65" loading="lazy"><h3>Contractor Insurance</h3></a>
2572<a class="service-card" href="https://www.contractoruk.com/contractor-bank-accounts"><img class="cuk-ico" src="https://www.contractoruk.com/images/hp-icons/cuk/ai/bank.jpg" alt="" width="80" height="80" loading="lazy"><img src="https://www.contractoruk.com/sites/default/files/inline-images/Screenshot%202026-03-16%20at%2012.55.17.png" alt="Contractor Bank Accounts - Business banking for limited companies" width="65" height="65" loading="lazy"><h3>Contractor Bank Accounts</h3></a>
2573<a class="service-card" href="https://www.contractoruk.com/directory/contractor_accountants.html"><img class="cuk-ico" src="https://www.contractoruk.com/images/hp-icons/cuk/ai/accounting.jpg" alt="" width="80" height="80" loading="lazy"><img src="https://contractoruk.com/images/hp-icons/cuk/sg-accounting-icon.png" alt="Contractor Accounting - Specialist contractor accountants" width="65" height="65" loading="lazy"><h3>Contractor Accounting</h3></a>
2574<a class="service-card" href="https://www.contractoruk.com/calculators"><img class="cuk-ico" src="https://www.contractoruk.com/images/hp-icons/cuk/ai/calculators.jpg" alt="" width="80" height="80" loading="lazy"><img src="https://contractoruk.com/images/hp-icons/cuk/AccountingSoftware1.jpg" alt="Contractor Calculators - Calculate take-home pay and rates" width="65" height="65" loading="lazy"><h3>Contractor Calculators</h3></a>
2575<a class="service-card" href="https://www.contractoruk.com/ir35hub"><img class="cuk-ico" src="https://www.contractoruk.com/images/hp-icons/cuk/ai/ir35hub.jpg" alt="" width="80" height="80" loading="lazy"><img src="https://contractoruk.com/sites/default/files/inline-images/Screenshot%202025-10-07%20at%2017.42.22.png" alt="IR35 Hub - Complete IR35 guides, news and resources" width="65" height="65" loading="lazy"><h3>IR35 Hub</h3></a>
2576<a class="service-card" href="https://www.contractoruk.com/directory/umbrella_companies.html"><img class="cuk-ico" src="https://www.contractoruk.com/images/hp-icons/cuk/ai/umbrella.jpg" alt="" width="80" height="80" loading="lazy"><img src="https://contractoruk.com/images/hp-icons/cuk/sg-umbrella-icon.png" alt="Contractor Umbrella Company - Find the best umbrella company" width="65" height="65" loading="lazy"><h3>Contractor Umbrella Company</h3></a>
2577<a class="service-card" href="https://www.contractoruk.com/virtual-offices-contractors"><img class="cuk-ico" src="https://www.contractoruk.com/images/hp-icons/cuk/
2577ai/offices.jpg" alt="" width="80" height="80" loading="lazy"><img src="https://www.contractoruk.com/sites/default/files/inline-images/Screenshot%202026-06-01%20at%2011.32.30.png" alt="Virtual Offices for Contractors - Professional registered office and business address services" width="45" height="45" loading="lazy" style="object-fit:contain;"><h3>Virtual Offices for Contractors</h3></a>
2578</div>
2579</div>
2580</div>
2581<div class="partners-block">
2582<p class="partners-block__label">Our partners</p>
2583<div class="featured-partner-rotator" data-partner-rotator>
2584<a class="featured-partner featured-partner--markel" data-partner-variant="markel" href="https://www.markeluk.com/contractoruk" target="_blank" rel="noopener sponsored">
2585    <span class="featured-partner__label">Partner</span>
2586    <h4 class="featured-partner__name">Markel Direct Insurance:</h4>
2587    <span class="featured-partner__desc"> Specialist professional indemnity, public liability &amp; more &mdash; <strong>Exclusive 10% off with code CUK10</strong></span>
2588</a>
2589</div>
2590<script>
2591(function() {
2592    var STORAGE_KEY = 'cukPartnerRotatorIndex';
2593    var rotator = document.querySelector('[data-partner-rotator]');
2594    if (!rotator) return;
2595    var variants = rotator.querySelectorAll('[data-partner-variant]');
2596    if (!variants.length) return;
2597
2598    var count = 0;
2599    try {
2600        var stored = window.localStorage && window.localStorage.getItem(STORAGE_KEY);
2601        count = parseInt(stored, 10);
2602        if (isNaN(count) || count < 0) count = 0;
2603    } catch (e) { count = 0; }
2604
2605    var idx = count % variants.length;
2606    for (var i = 0; i < variants.length; i++) {
2607        variants[i].style.display = (i === idx) ? '' : 'none';
2608    }
2609
2610    try {
2611        if (window.localStorage) window.localStorage.setItem(STORAGE_KEY, String(count + 1));
2612    } catch (e) {}
2613})();
2614</script>
2614
2615<a class="featured-partner featured-partner--ff" href="https://www.freelancerfinancials.co.uk/mortgages-for-contractors/?track=contractoruk" target="_blank" rel="noopener sponsored">
2616    <span class="featured-partner__label">Partner</span>
2617    <h4 class="featured-partner__name">Freelancer Financials:</h4>
2618    <span class="featured-partner__desc"> Award-winning contractor mortgage specialist &mdash; <strong>no accounts or tax records required</strong></span>
2619</a>
2620</div>
2621<div class="latest-news-section" id="cuk-news-modern">
2622<div class="news-header">
2623    <h2 class="news-title">Latest News &amp; Guides</h2>
2624</div>
2625<div id="news-list">
2626    <div style="text-align:center;padding:40px 0;color:#8b95a5;font-size:13px;">Loading latest news &amp; guides&hellip;</div>
2627</div>
2628<script>
2629(function() {
2630    var BASE = '';
2631    var NEWS_URL = BASE + '/news/all';
2632    var GUIDES_URL = BASE + '/latest-guides/all';
2633    // Article images live on the production CDN; load them from there so they
2634    // resolve everywhere (incl. local dev, which has no copies of the files).
2635    var IMG_BASE = 'https://www.contractoruk.com';
2636    var TOTAL_LIMIT = 6;
2637    var FETCH_LIMIT = 10;
2638    // Exclusive badge only — stays in date order, not locked to the first card.
2639    var EXCLUSIVE_SLUG = 'contractor-loan-recalls-rules-changed';
2640    // Per-article thumbnail crop focus (CSS object-position), keyed by URL slug.
2641    // Use when the interesting part of the photo isn't in the centre.
2642    var IMAGE_FOCUS = {
2643        'hmrc-standstill-agreements-72-months': '100% 50%' // hourglass on right of photo
2644    };
2645    var NL_HTML = '';
2646
2647    var MONTH_MAP = { January:0, February:1, March:2, April:3, May:4, June:5,
2648                      July:6, August:7, September:8, October:9, November:10, December:11 };
2649    var SHORT_MONTHS = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
2650
2651    function parseRawDate(raw) {
2652        if (!raw) return null;
2653        var m = raw.match(/(\d{1,2})\w*\s+(\w+),?\s+(\d{4})/);
2654        if (!m) return null;
2655        var mi = MONTH_MAP[m[2]];
2656        if (mi === undefined) return null;
2657        return new Date(parseInt(m[3]), mi, parseInt(m[1]));
2658    }
2659
2660    function formatDate(dateObj) {
2661        if (!dateObj) return '';
2662        var d = ('0' + dateObj.getDate()).slice(-2);
2663        return d + ' ' + SHORT_MONTHS[dateObj.getMonth()] + ' ' + dateObj.getFullYear();
2664    }
2665
2666    function parseNewsPage(html) {
2667        var doc = new DOMParser().parseFromString(html, 'text/html');
2668        var rows = doc.querySelectorAll('.cuk-news-item.views-row');
2669        var items = [];
2670        for (var i = 0; i < rows.length && items.length < FETCH_LIMIT; i++) {
2671            var row = rows[i];
2672            var linkEl = row.querySelector('.field--name-node-title a')
2673                      || row.querySelector('h2.node__title a')
2674                      || row.querySelector('h2 a[href]');
2675            if (!linkEl) continue;
2676            var href = linkEl.getAttribute('href') || '';
2677            if (href.indexOf('http') !== 0) href = BASE + href;
2678
2679            var image = extractImage(row);
2680
2681            var summaryEl = row.querySelector('.field--name-field-article-summary .field__item')
2682                         || row.querySelector('.field--name-field-article-summary');
2683
2684            var dateTypeEl = row.querySelector('.field--name-dynamic-token-fieldnode-field-postdate-newstype .field__item');
2685            var rawDate = '', newsType = '', dateObj = null;
2686            if (dateTypeEl) {
2687                var parts = dateTypeEl.textContent.trim().split('|');
2688                rawDate = parts[0] ? parts[0].trim() : '';
2689                dateObj = parseRawDate(rawDate);
2690                var typeLink = dateTypeEl.querySelector('a');
2691                newsType = typeLink ? typeLink.textContent.trim() : (parts[1] ? parts[1].trim() : '');
2692            } else {
2693                var timeEl = row.querySelector('.field--name-created time');
2694                if (timeEl) {
2695                    var dt = timeEl.getAttribute('datetime');
2696                    if (dt) dateObj = new Date(dt);
2697                }
2698                var typeEl = row.querySelector('.field--name-news-type .field__item a');
2699                if (typeEl) newsType = typeEl.textContent.trim();
2700            }
2701            var typeSlug = classifyType(newsType);
2702
2703            var authorEl = row.querySelector('.written-by a')
2704                        || row.querySelector('.field--name-node-author .field__item')
2705                        || row.querySelector('.field--name-uid a')
2706                        || row.querySelector('a[href*="/author/"]');
2707            var author = authorEl ? authorEl.textContent.trim() : '';
2708            var authorHref = '';
2709            if (authorEl && authorEl.getAttribute('href')) {
2710                var ah = authorEl.getAttribute('href');
2711                authorHref = (ah.indexOf('http') === 0) ? ah : BASE + ah;
2712            }
2713
2714            items.push({
2715                href: href,
2716                title: linkEl.textContent.trim(),
2717                summary: summaryEl ? summaryEl.textContent.trim() : '',
2718                dateObj: dateObj,
2719                date: dateObj ? formatDate(dateObj) : '',
2720                type: newsType || 'News',
2721                typeSlug: typeSlug,
2722                author: author,
2723                authorHref: authorHref,
2724                image: image
2725            });
2726        }
2727        return items;
2728    }
2729
2730    function extractImage(row) {
2731        var imgEl = row.querySelector('.field--name-field-article-image img')
2732                 || row.querySelector('.field--name-field-image img')
2733                 || row.querySelector('img');
2734        if (!imgEl) return '';
2735        var src = imgEl.getAttribute('src') || imgEl.getAttribute('data-src') || '';
2736        if (!src) return '';
2737        if (src.indexOf('http') === 0 || src.indexOf('//') === 0) return src;
2738        // Relative path -> resolve against the production image host.
2739        return IMG_BASE + (src.charAt(0) === '/' ? src : '/' + src);
2740    }
2741
2742    function parseGuidesPage(html) {
2743        var doc = new DOMParser().parseFromString(html, 'text/html');
2744        var rows = doc.querySelectorAll('.node--type-guide');
2745        var items = [];
2746        for (var i = 0; i < rows.length && items.length < FETCH_LIMIT; i++) {
2747            var row = rows[i];
2748            var linkEl = row.querySelector('.field--name-node-title a') || row.querySelector('a[href]');
2749            if (!linkEl) continue;
2750            var href = linkEl.getAttribute('href') || '';
2751            if (href.indexOf('http') !== 0) href = BASE + href;
2752
2753            var image = extractImage(row);
2754
2755            var summaryEl = row.querySelector('.field--name-field-article-summary .field__item')
2756                         || row.querySelector('.field--name-field-article-summary');
2757
2758            var dateTypeEl = row.querySelector('.field--name-dynamic-token-fieldnode-guide-type-and-date .field__item')
2759                          || row.querySelector('.field--name-dynamic-token-fieldnode-guide-type-and-date');
2760            var dateObj = null, dateStr = '', guideType = 'Guide';
2761            if (dateTypeEl) {
2762                var parts = dateTypeEl.textContent.trim().split('|');
2763                dateObj = parseRawDate(parts[0] ? parts[0].trim() : '');
2764                dateStr = dateObj ? formatDate(dateObj) : '';
2765                var typeLink = dateTypeEl.querySelector('a');
2766                if (typeLink) {
2767                    guideType = typeLink.textContent.trim();
2768                } else if (parts[1]) {
2769                    guideType = parts[1].trim();
2770                }
2771            }
2772
2773            var authorEl = row.querySelector('.written-by a')
2774                        || row.querySelector('.field--name-node-author .field__item')
2775                        || row.querySelector('.field--name-uid a')
2776                        || row.querySelector('a[href*="/author/"]');
2777            var author = authorEl ? authorEl.textContent.trim() : '';
2778            var authorHref = '';
2779            if (authorEl && authorEl.getAttribute && authorEl.getAttribute('href')) {
2780                var ah = authorEl.getAttribute('href');
2781                authorHref = (ah.indexOf('http') === 0) ? ah : BASE + ah;
2782            }
2783
2784            items.push({
2785                href: href,
2786                title: linkEl.textContent.trim(),
2787                summary: summaryEl ? summaryEl.textContent.trim() : '',
2788                dateObj: dateObj,
2789                date: dateStr,
2790                type: guideType,
2791                typeSlug: 'guide',
2792                author: author,
2793                authorHref: authorHref,
2794                image: image
2795            });
2796        }
2797        return items;
2798    }
2799
2800    function classifyType(type) {
2801        var t = type.toLowerCase();
2802        if (t.indexOf('comment') !== -1) return 'comment';
2803        if (t.indexOf('guide') !== -1) return 'guide';
2804        return 'news';
2805    }
2806
2807    function renderItem(item) {
2808        var meta = '';
2809        if (item.exclusive) meta += '<span class="news-featured-badge">
2809ContractorUK Exclusive</span>';
2810        if (item.date) meta += '<span class="news-date">' + escHtml(item.date) + '</span>';
2811        if (!item.exclusive) meta += '<span class="news-category news-category--' + item.typeSlug + '">' + escHtml(item.type) + '</span>';
2812        var excerptHtml = item.summary ? '<p class="news-excerpt">' + escHtml(item.summary) + '</p>' : '';
2813        var authorHtml = '';
2814        if (item.author && item.author.toLowerCase() !== 'anonymous') {
2815            if (item.authorHref) {
2816                authorHtml = '<span class="news-author">By <a href="' + escAttr(item.authorHref) + '" class="news-author__link">' + escHtml(item.author) + '</a></span>';
2817            } else {
2818                authorHtml = '<span class="news-author">By ' + escHtml(item.author) + '</span>';
2819            }
2820        }
2821        var focus = '';
2822        for (var slug in IMAGE_FOCUS) {
2823            if (IMAGE_FOCUS.hasOwnProperty(slug) && (item.href || '').indexOf(slug) !== -1) {
2824                focus = IMAGE_FOCUS[slug];
2825                break;
2826            }
2827        }
2828        var mediaHtml = item.image
2829            ? '<div class="news-item__media"><img src="' + escAttr(item.image) + '" alt="" loading="lazy"' + (focus ? ' style="object-position:' + escAttr(focus) + '"' : '') + ' onerror="var i=this.closest(\'.news-item\'); if(i){i.classList.remove(\'has-media\');} var m=this.closest(\'.news-item__media\'); if(m){m.remove();}"></div>'
2830            : '';
2831        var bodyHtml = '<div class="news-item__body">'
2832            + '<div class="news-meta">' + meta + '</div>'
2833            + '<h3 class="news-headline">' + escHtml(item.title) + '</h3>'
2834            + excerptHtml
2835            + '</div>';
2836        return '<div class="news-item' + (item.image ? ' has-media' : '') + (item.exclusive ? ' news-item--pinned' : '') + '">'
2837            + '<a href="' + escAttr(item.href) + '" class="news-item__link">'
2838            + mediaHtml + bodyHtml + '</a>'
2839            + authorHtml + '</div>';
2840    }
2841
2842    function escHtml(s) { var d = document.createElement('div'); d.textContent = s; return d.innerHTML; }
2843    function escAttr(s) { return s.replace(/&/g,'&amp;').replace(/"/g,'&quot;').replace(/</g,'&lt;').replace(/>/g,'&gt;'); }
2844
2845    function orderItems(newsItems, guideItems) {
2846        var merged = newsItems.concat(guideItems);
2847        merged.sort(function(a, b) {
2848            if (a.dateObj && b.dateObj) {
2849                var diff = b.dateObj - a.dateObj;
2850                if (diff) return diff;
2851                // Listing dates are day-only, so same-day news always won
2852                // the stable sort (news is concatenated first) and buried
2853                // a guide published later that day. Prefer the guide.
2854                if (a.typeSlug === 'guide' && b.typeSlug !== 'guide') return -1;
2855                if (b.typeSlug === 'guide' && a.typeSlug !== 'guide') return 1;
2856                return 0;
2857            }
2858            if (a.dateObj) return -1;
2859            if (b.dateObj) return 1;
2860            return 0;
2861        });
2862        // Flag the exclusive (badge only; it keeps its date-order position).
2863        for (var p = 0; p < merged.length; p++) {
2864            if ((merged[p].href || '').indexOf(EXCLUSIVE_SLUG) !== -1) {
2865                merged[p].exclusive = true;
2866                break;
2867            }
2868        }
2869        return merged.slice(0, TOTAL_LIMIT);
2870    }
2871
2872    function render(newsItems, guideItems) {
2873        var container = document.getElementById('news-list');
2874        if (!container) return;
2875
2876        var merged = orderItems(newsItems, guideItems);
2877
2878        var all = [];
2879        for (var i = 0; i < merged.length; i++) {
2880            all.push(renderItem(merged[i]));
2881            if (i === 2) all.push(NL_HTML);
2882        }
2883        container.innerHTML = all.join('');
2884    }
2885
2886    function renderFallback() {
2887        var container = document.getElementById('news-list');
2888        if (!container) return;
2889        container.innerHTML = '<div style="text-align:center;padding:30px 16px;">'
2890            + '<p style="color:#4a5568;font-size:14px;margin:0 0 14px;">Unable to load latest articles right now.</p>'
2891            + '<a href="' + BASE + '/news" style="display:inline-block;padding:10px 20px;background:#1a1a2e;color:#fff;border-radius:8px;text-decoration:none;font-weight:600;font-size:14px;margin:0 6px;">Read Latest News</a>'
2892            + '<a href="' + BASE + '/latest-guides" style="display:inline-block;padding:10px 20px;background:#fff;
2892color:#1a1a2e;border:1px solid #d0d5dd;border-radius:8px;text-decoration:none;font-weight:600;font-size:14px;margin:0 6px;">Browse Guides</a>'
2893            + '</div>';
2894    }
2895
2896    var newsItems = [], guideItems = [], loaded = 0;
2897
2898    var SUMMARY_MAX = 220;
2899
2900    function trimSummary(text) {
2901        if (!text) return '';
2902        text = text.trim();
2903        if (text.length <= SUMMARY_MAX) return text;
2904        var slice = text.slice(0, SUMMARY_MAX + 1);
2905        var sentenceEnd = -1;
2906        var marks = ['. ', '! ', '? ', '." ', '.\u201D', '.\u2019', '!\u201D', '?\u201D'];
2907        for (var i = 0; i < marks.length; i++) {
2908            var idx = slice.lastIndexOf(marks[i]);
2909            if (idx > sentenceEnd) sentenceEnd = idx;
2910        }
2911        if (sentenceEnd >= SUMMARY_MAX * 0.5) {
2912            return text.slice(0, sentenceEnd + 1).trim();
2913        }
2914        var window = text.slice(0, SUMMARY_MAX);
2915        var lastSpace = window.lastIndexOf(' ');
2916        if (lastSpace > SUMMARY_MAX * 0.5) {
2917            return window.slice(0, lastSpace).trim() + '\u2026';
2918        }
2919        return window.trim() + '\u2026';
2920    }
2921
2922    function fetchFullSummary(url) {
2923        return fetch(url, { credentials: 'omit' })
2924            .then(function(r) { return r.text(); })
2925            .then(function(html) {
2926                var headEnd = html.indexOf('</head>');
2927                if (headEnd > 0) html = html.substring(0, headEnd + 7);
2928                var doc = new DOMParser().parseFromString(html, 'text/html');
2929                var m = doc.querySelector('meta[property="og:description"]')
2930                     || doc.querySelector('meta[name="description"]');
2931                return m ? (m.getAttribute('content') || '').trim() : '';
2932            })
2933            .catch(function() { return ''; });
2934    }
2935
2936    function enrichSummaries(items) {
2937        var promises = items.map(function(item) {
2938            if (!item.href) return Promise.resolve();
2939            return fetchFullSummary(item.href).then(function(fullSummary) {
2940                if (!fullSummary) return;
2941                var trimmed = trimSummary(fullSummary);
2942                if (trimmed && trimmed.length > (item.summary || '').length) {
2943                    item.summary = trimmed;
2944                }
2945            });
2946        });
2947        return Promise.all(promises);
2948    }
2949
2950    function checkDone() {
2951        loaded++;
2952        if (loaded < 2) return;
2953        if (newsItems.length === 0 && guideItems.length === 0) {
2954            renderFallback();
2955            return;
2956        }
2957        render(newsItems, guideItems);
2958        enrichSummaries(orderItems(newsItems, guideItems)).then(function() {
2959            render(newsItems, guideItems);
2960        });
2961    }
2962
2963    fetch(NEWS_URL, { credentials: 'omit' })
2964        .then(function(r) { return r.text(); })
2965        .then(function(html) { newsItems = parseNewsPage(html); })
2966        .catch(function() {})
2967        .then(checkDone);
2968
2969    fetch(GUIDES_URL, { credentials: 'omit' })
2970        .then(function(r) { return r.text(); })
2971        .then(function(html) { guideItems = parseGuidesPage(html); })
2972        .catch(function() {})
2973        .then(checkDone);
2974})();
2975</script>
2975
2976<div class="view-links">
2977<a href="https://www.contractoruk.com/news" class="view-link">View All News &rarr;</a>
2978            <a href="https://www.contractoruk.com/latest-guides" class="view-link">View All Guides &rarr;</a>
2979</div>
2980</div></div>
2981      
2982      </div>
2983</div>
2984              <div class="field__item">  <div class="paragraph paragraph--type--landpage-view paragraph--view-mode--default">
2985          
2986            <div class="field field--name-field-landpage-view field--type-viewsreference field--label-hidden field__item"><div class="views-element-container"><div class="latest-news-section">
2987  <div class="news-header">
2988    <h2 class="news-title">Latest News & Guides</h2>
2989          <div class="news-subtitle">
2990        Stay updated with the latest contractor news &amp; guides
2991      </div>
2992        <div class="news-divider"></div>
2993  </div>
2994  <div class="news-list" id="news-list">
2995        <div class="news-item">
2996    <span><div class="news-date me-2"><time datetime="2026-09-23T02:00:59+02:00" title="Wednesday, September 23, 2026 - 02:00" class="datetime">23 Sep 2026</time>
2997</div></span><span><div class="news-category">News</div></span><div><h3 class="news-headline"><a href="/news/contractor-loan-recalls-rules-changed" hreflang="en">Luke’s Story: “I knew it was a loan. But they changed the rules.”</a></h3></div><div><div class="news-excerpt"><a href="https://contractoruk.com/news/contractor-loan-recalls-rules-changed">Many contractors knew that loans formed part of their remuneration arrangements. But are the debts being pursued today governed by the rules they actually agreed to?</a></div></div><div class="text-end small pt-2"><span>By </span><span>
2997ContractorUK Editorial Team</span></div>
2998  </div>
2999    <div class="news-item">
3000    <span><div class="news-date me-2"><time datetime="2026-09-22T15:06:56+02:00" title="Tuesday, September 22, 2026 - 15:06" class="datetime">22 Sep 2026</time>
3001</div></span><span><div class="news-category">Comment</div></span><div><h3 class="news-headline"><a href="/news/companies-house-home-address-contractors" hreflang="en">I registered my company with my home address. Whoops. Here&#039;s what Companies House shows the world about you</a></h3></div><div><div class="news-excerpt"><a href="https://contractoruk.com/news/companies-house-home-address-contractors">Setting up a limited company? Your home address could end up rather more public than you bargained for. From junk mail and identity theft to keeping home and business separate, here’s what contractors should know before putting their address on Companies House, and what to do if it’s already there.</a></div></div><div class="text-end small pt-2"><span>By </span><span>Lottie Hutchins</span></div>
3002  </div>
3003    <div class="news-item">
3004    <span><div class="news-date me-2"><time datetime="2026-09-22T05:51:03+02:00" title="Tuesday, September 22, 2026 - 05:51" class="datetime">22 Sep 2026</time>
3005</div></span><span><div class="news-category">Comment</div></span><div><h3 class="news-headline"><a href="/news/ir35-replacement-options" hreflang="en">The Tories’ three IR35 replacement options — but contractors are right to be sceptical</a></h3></div><div><div class="news-excerpt"><a href="https://contractoruk.com/news/ir35-replacement-options">IPSE’s Josh Toovey was in the room when Andrew Griffith MP pledged to ‘replace, not reform’ IR35. Here, exclusively for ContractorUK, he sets out the three IR35 models on the table — and names the frontrunners in the eyes of the UK’s self-employment body.</a></div></div><div class="text-end small pt-2"><span>By </span><span>Josh Toovey</span></div>
3006  </div>
3007    <div class="news-item">
3008    <span><div class="news-date me-2"><time datetime="2026-09-21T07:06:41+02:00" title="Monday, September 21, 2026 - 07:06" class="datetime">21 Sep 2026</time>
3009</div></span><span><div class="news-category">IR35 News</div></span><div><h3 class="news-headline"><a href="/news/conservatives-replace-ir35" hreflang="en">Conservatives to replace IR35 outright, Griffith vows — advisers who met him reveal what it should contain</a></h3></div><div><div class="news-excerpt"><a href="https://contractoruk.com/news/conservatives-replace-ir35">Andrew Griffith says the next Conservative government will wholesale replace IR35. Two advisers who met him tell ContractorUK what they now want to see — others call it a 'slap in the face' for contractors from OPW's 'architects,' a contractor cites 4.2billion reasons HMT won't budge, and a legal adviser says he'll believe it when he sees it.</a></div></div><div class="text-end small pt-2"><span>By </span><span>Simon Moore</span></div>
3010  </div>
3011    <div class="news-item">
3012    <span><div class="news-date me-2"><time datetime="2026-09-17T07:14:25+02:00" title="Thursday, September 17, 2026 - 07:14" class="datetime">17 Sep 2026</time>
3013</div></span><span><div class="news-category">Comment</div></span><div><h3 class="news-headline"><a href="/news/hmrc-tax-calculation-errors-contractors" hreflang="en">HMRC’s tax calculation errors: why contractors must check their bill now</a></h3></div><div><div class="news-excerpt"><a href="https://contractoruk.com/news/hmrc-tax-calculation-errors-contractors">Contractors moving between PSC and umbrella arrangements face a higher risk of HMRC's tax calculation gaffe. Carl Bridges of Caroola Accountancy explains what the tech flaw dating back to 2021 means for 2025/26 tax bills, and why one-and-done is so yester-tax-year.</a></div></div><div class="text-end small pt-2"><span>By </span><span>Carl Bridges</span></div>
3014  </div>
3015    <div class="news-item">
3016    <span><div class="news-date me-2"><time datetime="2026-09-15T02:12:40+02:00" title="Tuesday, September 15, 2026 - 02:12" class="datetime">15 Sep 2026</time>
3017</div></span><span><div class="news-category">Contracting News</div></span><div><h3 class="news-headline"><a href="/news/hmrc-names-12-tax-avoidance-schemes-loan-charge" hreflang="en">HMRC names 12 loan charge-type schemes, one with ‘Tardis’ clause</a></h3></div><div><div class="news-excerpt"><a href="https://contractoruk.com/news/hmrc-names-12-tax-avoidance-schemes-loan-charge">
3017A new ‘dodgy’ dozen has joined HMRC's avoidance blacklist, which features an offshore trust with a self-voiding clause, three updates to the previously ‘named and shamed,’ and ‘too good to be true’ arrangements that threaten contractors with ‘tax bills, hardship and stress.’</a></div></div><div class="text-end small pt-2"><span>By </span><span>Simon Moore</span></div>
3018  </div>
3019
3020  </div>
3021  <div class="news-actions d-none">
3022    <a href="/news" id="see-more-btn" class="see-more-btn" aria-expanded="false" aria-controls="news-list">
3023      See More
3024    </a>
3025  </div>
3026  <div class="view-links pt-3" id="view-links" aria-hidden="false">
3027    <a href="/news" class="view-link">View All News →</a>
3028    <a href="/latest-guides" class="view-link">View All Guides →</a>
3029  </div>
3030</div>
3031</div>
3032</div>
3033      
3034      </div>
3035</div>
3036              <div class="field__item">  <div class="paragraph paragraph--type--landpage-block paragraph--view-mode--default">
3037          
3038            <div class="field field--name-field-landpage-block field--type-entity-reference field--label-hidden field__item">
3039  <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-visually_hidden">
3040    <div class="field__label visually-hidden">Body</div>
3041              <div class="field__item"><p align="center"><ins data-cukp-zoneid="66" data-cukp-block="1" data-cukp-id="636145c2380e065631f11ea3a8bd6418"></ins></p></div>
3042          </div>
3043</div>
3044      
3045      </div>
3046</div>
3047              <div class="field__item">  <div class="paragraph paragraph--type--landpage-block paragraph--view-mode--default">
3048          
3049            <div class="field field--name-field-landpage-block field--type-entity-reference field--label-hidden field__item">
3050  <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-visually_hidden">
3051    <div class="field__label visually-hidden">Body</div>
3052              <div class="field__item"><p align="center"><ins data-cukp-zoneid="66" data-cukp-block="1" data-cukp-id="636145c2380e065631f11ea3a8bd6418"></ins></p></div>
3053          </div>
3054</div>
3055      
3056      </div>
3057</div>
3058          </div>
3059  
3060  </div>
3061</article>
3062
3063    </div>
3064  </div>
3065
3066
3067
3068                      <div id="content-bottom" class="mt-4">
3069                <section class="row region region-content-bottom">
3070    <div id="block-newsletterfooter-2" class="block-content-basic block block-block-content block-block-content2dc21e68-2e90-474a-94f3-2dcec6e65c97">
3071  
3072    
3073      <div class="content">
3074      
3075  <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-visually_hidden">
3076    <div class="field__label visually-hidden">Body</div>
3077              <div class="field__item"><style>
3078.cuku-nl {
3079    background: #f7fafc;
3080    border: 1px solid #e2e8f0;
3081    border-radius: 10px;
3082    padding: 16px 24px;
3083    margin: 8px 0;
3084    text-align: center;
3085}
3086.cuku-nl__title {
3087    margin: 0 0 10px 0;
3088    font-size: 16px;
3089    font-weight: 700;
3090    color: #1a202c;
3091    line-height: 1.3;
3092}
3093.cuku-nl__form {
3094    display: flex;
3095    gap: 8px;
3096    justify-content: center;
3097}
3098.cuku-nl__input {
3099    width: 220px;
3100    padding: 9px 12px;
3101    border: 1.5px solid #e2e8f0;
3102    border-radius: 8px;
3103    background: #fff;
3104    color: #2d3748;
3105    font-size: 13.5px;
3106    transition: border-color .2s, box-shadow .2s;
3107}
3108.cuku-nl__input::placeholder { color: #a0aec0; }
3109.cuku-nl__input:focus {
3110    outline: none;
3111    border-color: #3182ce;
3112    box-shadow: 0 0 0 3px rgba(49,130,206,.15);
3113}
3114.cuku-nl__btn {
3115    padding: 9px 18px;
3116    border: 0;
3117    border-radius: 8px;
3118    background: #3182ce;
3119    color: #fff;
3120    font-size: 13.5px;
3121    font-weight: 700;
3122    cursor: pointer;
3123    white-space: nowrap;
3124    transition: background .2s, transform .15s;
3125}
3126.cuku-nl__btn:hover {
3127    background: #2b6cb0;
3128    transform: translateY(-1px);
3129}
3130.cuku-nl__sub {
3131    margin: 10px 0 0 0;
3132    font-size: 13px;
3133    color: #718096;
3134    line-height: 1.35;
3135}
3136.cuku-nl__foot {
3137    display: flex;
3138    align-items: center;
3139    justify-content: center;
3140    gap: 14px;
3141    margin-top: 8px;
3142    font-size: 11.5px;
3143    color: #a0aec0;
3144}
3145.cuku-nl__foot span {
3146    display: flex;
3147    align-items: center;
3148    gap: 4px;
3149}
3150.cuku-nl__dot {
3151    width: 4px;
3152    height: 4px;
3153    border-radius: 50%;
3154    background: #cbd5e0;
3155    flex-shrink: 0;
3156}
3157.honeypot { position: absolute; left: -5000px; width: 1px; height: 1px; overflow: hidden; }
3158.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
3159@media (max-width: 768px) {
3160    .cuku-nl__form { flex-direction: column; align-items: center; }
3161    .cuku-nl__input { width: 100%; }
3162    .cuku-nl__btn { width: 100%; text-align: center; }
3163    .cuku-nl__foot { flex-wrap: wrap; gap: 8px; }
3164}
3165</style>
3166
3167<section class="cuku-nl" role="region" aria-label="Newsletter sign-up">
3168    <h2 class="cuku-nl__title">The IR35, tax &amp; contract market changes that matter — in under 4 minutes</h2>
3169    <form class="cuku-nl__form"
3170          action="https://contractoruk.us12.list-manage.com/subscribe/post?u=6c15d39c92a98f30df00963e4&amp;id=ce9f189114&amp;f_id=00eb61e9f0"
3171          method="post" target="_blank" novalidate>
3172        <label for="cuku-nl-email" class="visually-hidden">Email address</label>
3173        <input class="cuku-nl__input" type="email" id="cuku-nl-email" name="EMAIL"
3174               placeholder="[email protected]" required autocomplete="email">
3175        <button class="cuku-nl__btn" type="submit">Get the briefing</button>
3176        <div class="honeypot" aria-hidden="true">
3177            <input type="text" name="b_6c15d39c92a98f30df00963e4_ce9f189114" tabindex="-1" value="">
3178        </div>
3179    </form>
3180    <p class="cuku-nl__sub">Every Thursday. Trusted by 50,000+ UK contractors.</p>
3181    <div class="cuku-nl__foot">
3182        <span>Free, forever</span>
3183        <span class="cuku-nl__dot"></span>
3184        <span>No spam</span>
3185        <span class="cuku-nl__dot"></span>
3186        <span>Unsubscribe anytime</span>
3187    </div>
3188</section>
3189</div>
3190          </div>
3191
3192    </div>
3193  </div>
3194<div id="block-featuredmodern" class="block-content-basic block block-block-content block-block-content1486162e-6f04-429f-a4af-b388c910db0b">
3195  
3196    
3197      <div class="content">
3198      
3199  <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-visually_hidden">
3200    <div class="field__label visually-hidden">Body</div>
3201              <div class="field__item"><style>
3202.publications-section {
3203    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
3204    padding: 20px 0 16px;
3205    margin: 0;
3206    text-align: center;
3207    border-top: 1px solid #e8ecf1;
3208}
3209.publications-title {
3210    font-size: 11px;
3211    font-weight: 600;
3212    color: #a0aab6;
3213    text-transform: uppercase;
3214    letter-spacing: .08em;
3215    margin: 0 0 14px 0;
3216    line-height: 1.4;
3217}
3218.publications-image-container {
3219    display: inline-block;
3220    max-width: 100%;
3221}
3222.publications-image {
3223    max-width: 100%;
3224    height: auto;
3225    display: block;
3226    opacity: 0.55;
3227    filter: grayscale(100%);
3228    transition: opacity 0.3s ease, filter 0.3s ease;
3229}
3230.publications-image-container:hover .publications-image {
3231    opacity: 0.8;
3232    filter: grayscale(60%);
3233}
3234@media (max-width: 768px) {
3235    .publications-section {
3236        padding: 16px 0 12px;
3237    }
3238    .publications-title {
3239        font-size: 10px;
3240        margin-bottom: 10px;
3241    }
3242    .publications-image {
3243        opacity: 0.5;
3244    }
3245}
3246</style>
3247
3248<div class="publications-section">
3249    <h4 class="publications-title">ContractorUK has featured in the following publications:</h4>
3250    <div class="publications-image-container">
3251        <img class="publications-image" 
3252             alt="Featured in BBC, The Telegraph, The Guardian, Financial Times, The Times and more" 
3253             src="https://www.contractoruk.com/sites/default/files/inline-images/client-img.jpg" />
3254    </div>
3255</div>
3256</div>
3257          </div>
3258
3259    </div>
3260  </div>
3261<div id="block-usefullinkshomepage" class="block-content-text_and_image_block block block-block-content block-block-contentdcc2b7b7-a659-4567-85fa-b8b4ce9c62e4">
3262  
3263    
3264      <div class="content">
3265      <div class="block-content block-content--type-text-and-image-block block-content--view-mode-full ds-1col clearfix">
3266
3267  
3268
3269  
3270            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><style>
3271.useful-links {
3272    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
3273    margin-bottom: 20px;
3274}
3275.useful-links h4 {
3276    font-size: 11px;
3277    font-weight: 700;
3278    text-transform: uppercase;
3279    letter-spacing: .06em;
3280    color: #8b95a5;
3281    margin: 0 0 10px;
3282}
3283.useful-links-list {
3284    display: flex;
3285    flex-wrap: wrap;
3286    gap: 8px;
3287    list-style: none;
3288    padding: 0;
3289    margin: 0;
3290}
3291.useful-links-list a {
3292    display: inline-block;
3293    padding: 6px 14px;
3294    background: #f1f3f5;
3295    border-radius: 6px;
3296    font-size: 13px;
3297    font-weight: 600;
3298    color: #2d3748;
3299    text-decoration: none;
3300    transition: background .2s, color .2s;
3301}
3302.useful-links-list a:hover {
3303    background: #1a1a2e;
3304    color: #fff;
3305    text-decoration: none;
3306}
3307.useful-links-list .recrd-link {
3308    background: #1a1a2e;
3309    color: #fff;
3310}
3311.useful-links-list .recrd-link:hover {
3312    background: #2d2d44;
3313}
3314.useful-links-list .recrd-link small {
3315    font-weight: 400;
3316    opacity: 0.7;
3317    font-size: 11px;
3318}
3319</style>
3320
3321<div class="useful-links">
3322    <h4>Useful Links</h4>
3323    <div class="useful-links-list">
3324        <a class="recrd-link" href="https://recrd.uk" target="_blank" rel="noopener">RECRD — Invoices for Contractors <small>Built by ContractorUK</small></a>
3325        <a href="https://www.contractoruk.com/insurance/professional_indemnity.html">Professional Indemnity Insurance</a>
3326        <a href="https://www.contractoruk.com/mvl/contractor_mvl_solution_sfp_group.html">Closing your company</a>
3327    </div>
3328</div>
3329</div>
3330      
3331
3332</div>
3333
3334
3335    </div>
3336  </div>
3337
3338  </section>
3339
3340            </div>
3341          
3342        </div>
3343
3344                <div class="col-lg-2 sidebar-right">
3345          <aside role="complementary">
3346              <div id="block-partnersblockhomepage" class="block-content-basic block block-block-content block-block-content25b3ab9e-4416-4471-a427-802eb9a99a15">
3347  
3348    
3349      <div class="content">
3350      
3351  <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-visually_hidden">
3352    <div class="field__label visually-hidden">Body</div>
3353              <div class="field__item"><style>
3354/* Partners Sidebar Block Styles */
3355.partners-sidebar {
3356    background: #fff;
3357    border-radius: 12px;
3358    box-shadow: 0 2px 8px rgba(0,0,0,.08);
3359    border: 1px solid #e2e8f0;
3360    overflow: hidden;
3361}
3362.partners-sidebar__header {
3363    padding: 12px 16px;
3364    border-bottom: 1px solid #f1f3f4;
3365}
3366.partners-sidebar__title {
3367    font-size: 14px;
3368    font-weight: 700;
3369    color: #2d3748;
3370    text-transform: uppercase;
3371    letter-spacing: .5px;
3372    margin: 0;
3373}
3374.partners-sidebar__divider {
3375    width: 60px;
3376    height: 2px;
3377    background: #4a5568;
3378    border-radius: 1px;
3379    margin: 8px auto 0 auto;
3380}
3381.partners-sidebar-list {
3382    display: flex;
3383    flex-direction: column;
3384    gap: 0;
3385}
3386.partner-card {
3387    display: block;
3388    padding: 16px;
3389    border-bottom: 1px solid #f1f3f4;
3390    text-decoration: none !important;
3391    color: inherit !important;
3392    transition: background .2s ease, transform .2s ease;
3393    position: relative;
3394}
3395.partner-card:last-child { border-bottom: none; }
3396.partner-card:hover {
3397    background: #f8fafc;
3398    transform: translateX(3px);
3399}
3400.partner-card__logo-wrap {
3401    background: #f8f9fa;
3402    border-radius: 8px;
3403    padding: 14px 12px;
3404    text-align: center;
3405    margin-bottom: 10px;
3406    transition: background .2s;
3407}
3408.partner-card:hover .partner-card__logo-wrap {
3409    background: #fff;
3410    box-shadow: 0 1px 4px rgba(0,0,0,.06);
3411}
3412.partner-card__logo-wrap img {
3413    max-width: 100%;
3414    height: 44px;
3415    object-fit: contain;
3416    display: block;
3417    margin: 0 auto;
3418}
3419.partner-card__desc {
3420    font-size: 11px;
3421    color: #64748b;
3422    line-height: 1.4;
3423    margin: 0;
3424}
3425.partner-card__cta {
3426    display: inline-block;
3427    margin-top: 8px;
3428    font-size: 11px;
3429    font-weight: 600;
3430    color: #3182ce;
3431    letter-spacing: .02em;
3432}
3433.partner-card:hover .partner-card__cta { text-decoration: underline; }
3434.partner-card.hidden { display: none; }
3435</style>
3436
3437<div class="partners-sidebar">
3438    <div class="partners-sidebar__header">
3439        <h3 class="partners-sidebar__title">Our Partners</h3>
3440        <div class="partners-sidebar__divider"></div>
3441    </div>
3442    <div class="partners-sidebar-list" id="partners-sidebar-list">
3443        <a class="partner-card" href="https://www.contractoruk.com/ct/gcgk029" rel="nofollow" target="_blank">
3444            <div class="partner-card__logo-wrap"><img src="https://www.contractoruk.com/sites/default/files/Smallads/SGA-002-150x50.gif" alt="SG Accounting" loading="eager" onerror="this.closest('.partner-card').classList.add('hidden')"></div>
3445            <p class="partner-card__desc">Award-winning contractor accountants</p>
3446            <span class="partner-card__cta">Learn more &rarr;</span>
3447        </a>
3448        <a class="partner-card" href="https://www.freelancerfinancials.co.uk/?track=contractoruk" rel="nofollow sponsored" target="_blank">
3449            <div class="partner-card__logo-wrap"><img src="https://www.contractoruk.com/sites/default/files/inline-images/FF-Logo-Dark_0.png" alt="Freelancer Financials" loading="eager" onerror="this.closest('.partner-card').classList.add('hidden')"></div>
3450            <p class="partner-card__desc">Specialist contractor mortgages &mdash; no accounts required</p>
3451            <span class="partner-card__cta">Learn more &rarr;</span>
3452        </a>
3453        <a class="partner-card" href="https://www.contractoruk.com/ct/08iwg84" rel="nofollow" target="_blank">
3454            <div class="partner-card__logo-wrap"><img src="https://www.contractoruk.com/sites/default/files/Smallads/liquidation-small-150x50.gif" alt="SFP Group" loading="eager" onerror="this.closest('.partner-card').classList.add('hidden')"></div>
3455            <p class="partner-card__desc">Members&rsquo; Voluntary Liquidation specialists</p>
3456            <span class="partner-card__cta">Learn more &rarr;</span>
3457        </a>
3458        <a class="partner-card" href="https://www.contractoruk.com/ct/2mtqvxj" rel="nofollow noopener" target="_blank">
3459            <div class="partner-card__logo-wrap"><img src="https://www.contractoruk.com/sites/default/files/inline-images/CUK%20small%20button%20-%20150%20x%2050%20px_0.gif" alt="Markel Insurance" loading="eager" onerror="this.closest('.partner-card').classList.add('hidden')"></div>
3460            <p class="partner-card__desc">Professional indemnity &amp; public liability cover</p>
3461            <span class="partner-card__cta">Learn more &rarr;</span>
3462        </a>
3463        <a class="partner-card" href="https://www.contractoruk.com/ct/hxez9qx" rel="nofollow" target="_blank">
3464            <div class="partner-card__logo-wrap"><img src="https://www.contractoruk.com/sites/default/files/inline-images/CUK-Gif-26%20%281%29.gif" alt="Dolan Accountancy" loading="eager" onerror="this.closest('.partner-card').classList.add('hidden')"></div>
3465            <p class="partner-card__desc">Specialist contractor &amp; freelancer accountants</p>
3466            <span class="partner-card__cta">Learn more &rarr;</span>
3467        </a>
3468        <a class="partner-card" href="https://www.ii.co.uk/ii-partners/contractoruk" rel="nofollow sponsored" target="_blank">
3469            <div class="partner-card__logo-wrap"><img src="https://www.contractoruk.com/sites/default/files/inline-images/iiContractorUK_Button_150x50%402x.png" alt="Interactive Investor" loading="eager" onerror="this.closest('.partner-card').classList.add('hidden')"></div>
3470            <p class="partner-card__desc">Best Contractor Pension Provider 2025 &mdash; SIPPs &amp; ISAs from &pound;5.99/month</p>
3471            <span class="partner-card__cta">Learn more &rarr;</span>
3472        </a>
3473    </div>
3474</div>
3475
3476<script>
3477document.addEventListener('DOMContentLoaded', function() {
3478    var list = document.getElementById('partners-sidebar-list');
3479    if (!list) return;
3480    var cards = Array.from(list.children);
3481    for (var i = cards.length - 1; i > 0; i--) {
3482        var j = Math.floor(Math.random() * (i + 1));
3483        var temp = cards[i];
3484        cards[i] = cards[j];
3485        cards[j] = temp;
3486    }
3487    cards.forEach(function(card) { list.appendChild(card); });
3488});
3489</script>
3489
3490</div>
3491          </div>
3492
3493    </div>
3494  </div>
3495<div id="block-guidesmodern" class="block-content-basic block block-block-content block-block-content30e50d78-3782-4371-b01d-fbebee9417d1">
3496  
3497    
3498      <div class="content">
3499      
3500  <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-visually_hidden">
3501    <div class="field__label visually-hidden">Body</div>
3502              <div class="field__item"><style>
3503.latest-guides-section {
3504    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
3505    background: #fff;
3506    border-radius: 12px;
3507    box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
3508    border: 1px solid #e2e8f0;
3509    overflow: hidden;
3510    margin: 16px 0 20px;
3511}
3512
3513.guides-header {
3514    padding: 12px 16px;
3515    border-bottom: 1px solid #f1f3f4;
3516}
3517
3518.guides-label {
3519    font-size: 14px;
3520    font-weight: 700;
3521    color: #2d3748;
3522    margin: 0;
3523    text-transform: uppercase;
3524    letter-spacing: .5px;
3525}
3526
3527.guides-divider {
3528    width: 60px;
3529    height: 2px;
3530    background: #4a5568;
3531    border-radius: 1px;
3532    margin: 8px auto 0;
3533}
3534
3535.guides-list {
3536    display: flex;
3537    flex-direction: column;
3538    min-height: 200px;
3539}
3540
3541.guide-item {
3542    display: block;
3543    padding: 16px;
3544    border-bottom: 1px solid #f1f3f4;
3545    transition: background .2s ease;
3546}
3547
3548.guide-item__link {
3549    display: block;
3550    text-decoration: none !important;
3551    color: inherit !important;
3552}
3553
3554.guide-item:last-child { border-bottom: none; }
3555.guide-item:hover { background: #f8fafc; }
3556
3557.guide-category {
3558    margin-bottom: 8px;
3559    display: inline-block;
3560    font-size: 9.5px;
3561    font-weight: 700;
3562    text-transform: uppercase;
3563    letter-spacing: .04em;
3564    padding: 2px 7px;
3565    border-radius: 4px;
3566}
3567
3568.guide-category--ir35    { background: #e8f0fe; color: #1a56db; }
3569.guide-category--guide   { background: #e6f7ed; color: #15803d; }
3570.guide-category--tax     { background: #fef3e2; color: #b45309; }
3571.guide-category--finance { background: #f0e6ff; color: #7c3aed; }
3572.guide-category--default { background: #f1f3f5; color: #4a5568; }
3573
3574.guide-title {
3575    font-size: 13.5px;
3576    font-weight: 600;
3577    color: #1a202c;
3578    margin: 0;
3579    line-height: 1.4;
3580}
3581
3582.guide-byline {
3583    font-size: 12px;
3584    color: #64748b;
3585    margin: 6px 0 0;
3586    line-height: 1.4;
3587}
3588
3589.guide-byline a {
3590    color: #3182ce;
3591    text-decoration: none;
3592}
3593
3594.guide-byline a:hover {
3595    color: #2c5282;
3596    text-decoration: underline;
3597}
3598
3599.guides-loading {
3600    padding: 40px 20px;
3601    text-align: center;
3602    color: #718096;
3603    font-size: 13px;
3604}
3605
3606.loading-spinner {
3607    width: 20px;
3608    height: 20px;
3609    border: 2px solid #e2e8f0;
3610    border-top: 2px solid #4a5568;
3611    border-radius: 50%;
3612    animation: spin 1s linear infinite;
3613    margin: 0 auto 10px;
3614}
3615
3616@keyframes spin {
3617    0%   { transform: rotate(0deg); }
3618    100% { transform: rotate(360deg); }
3619}
3620
3621.view-all-guides {
3622    padding: 14px 16px;
3623    text-align: center;
3624    border-top: 1px solid #f1f3f4;
3625}
3626
3627.view-all-link {
3628    font-size: 13px;
3629    font-weight: 600;
3630    color: #3182ce;
3631    text-decoration: none !important;
3632    transition: color .2s;
3633}
3634
3635.view-all-link:hover { color: #2c5282; }
3636
3637@media (max-width: 768px) {
3638    .latest-guides-section { border-radius: 8px; }
3639    .guide-item { padding: 14px; }
3640    .guide-title { font-size: 13px; }
3641}
3642</style>
3643
3644<div class="latest-guides-section" id="latest-guides-widget">
3645    <div class="guides-header">
3646        <div class="guides-label">Latest Guides</div>
3647        <div class="guides-divider"></div>
3648    </div>
3649
3650    <div class="guides-list" data-role="guides-list">
3651        <div class="guides-loading" data-role="guides-loading">
3652            <div class="loading-spinner"></div>
3653            Loading latest guides...
3654        </div>
3655    </div>
3656
3657    <div class="view-all-guides">
3658        <a href="/latest-guides" class="view-all-link">View All Guides &rarr;</a>
3659    </div>
3660</div>
3661
3662<script>
3663(function () {
3664    var root = document.getElementById('latest-guides-widget');
3665    if (!root || root.dataset.loaded === '1') return;
3666    root.dataset.loaded = '1';
3667
3668    var listEl = root.querySelector('[data-role="guides-list"]');
3669
3670    function escapeHtml(s) {
3671        return String(s).replace(/[&<>"']/g, function (c) {
3672            return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' }[c];
3673        });
3674    }
3675
3676    function categoryFor(url, title, topic) {
3677        var topicL = String(topic || '').toLowerCase();
3678        if (topicL.indexOf('ir35') !== -1) return { label: 'IR35', cls: 'guide-category--ir35' };
3679        if (topicL.indexOf('umbrella') !== -1) return { label: 'Umbrella', cls: 'guide-category--default' };
3680        if (topicL.indexOf('limited') !== -1) return { label: 'Company', cls: 'guide-category--default' };
3681        if (topicL.indexOf('expense') !== -1) return { label: 'Tax', cls: 'guide-category--tax' };
3682        if (topicL.indexOf('vat') !== -1 || topicL.indexOf('tax') !== -1 || topicL.indexOf('money') !== -1) return { label: 'Tax', cls: 'guide-category--tax' };
3683        if (topicL.indexOf('starting') !== -1) return { label: 'Starting out', cls: 'guide-category--guide' };
3684        if (topicL.indexOf('closing') !== -1) return { label: 'Closing', cls: 'guide-category--default' };
3685
3686        var t = (url + ' ' + title).toLowerCase();
3687        if (t.indexOf('ir35') !== -1) return { label: 'IR35', cls: 'guide-category--ir35' };
3688        if (/(tax|dividend|vat|expense)/.test(t)) return { label: 'Tax', cls: 'guide-category--tax' };
3689        if (/(mortgage|pension|finance|wealth|money)/.test(t)) return { label: 'Finance', cls: 'guide-category--finance' };
3690        if (/limited[_\- ]compan/.test(t)) return { label: 'Company', cls: 'guide-category--default' };
3691        if (t.indexOf('umbrella') !== -1) return { label: 'Umbrella', cls: 'guide-category--default' };
3692        if (/(agenc|late.?pay)/.test(t)) return { label: 'Agency', cls: 'guide-category--tax' };
3693        if (/(insurance|indemnity)/.test(t)) return { label: 'Insurance', cls: 'guide-category--finance' };
3694        if (/(overseas|international)/.test(t)) return { label: 'Overseas', cls: 'guide-category--ir35' };
3695        if (/(\/cv|\/jobs?\/|career|contract\b)/.test(t)) return { label: 'Careers', cls: 'guide-category--guide' };
3696        return { label: 'Contracting', cls: 'guide-category--default' };
3697    }
3698
3699    function bylineHtml(g) {
3700        var bits = [];
3701        if (g.date) bits.push(escapeHtml(g.date));
3702        if (g.author) {
3703            bits.push(g.authorUrl
3704                ? 'By <a href="' + escapeHtml(g.authorUrl) + '">' + escapeHtml(g.author) + '</a>'
3705                : 'By ' + escapeHtml(g.author));
3706        }
3707        return bits.join(' <span aria-hidden="true">·</span> ');
3708    }
3709
3710    function buildItem(g, idx) {
3711        var c = categoryFor(g.url, g.title, g.topic);
3712        var byline = bylineHtml(g);
3713        return '<div class="guide-item" data-guide-index="' + idx + '">' +
3714                   '<a class="guide-item__link" href="' + escapeHtml(g.url) + '">' +
3715                       '<span class="guide-category ' + c.cls + '">' + c.label + '</span>' +
3716                       '<h4 class="guide-title">' + escapeHtml(g.title) + '</h4>' +
3717                   '</a>' +
3718                   '<p class="guide-byline" data-byline-index="' + idx + '"' + (byline ? '' : ' hidden') + '>' + byline + '</p>' +
3719               '</div>';
3720    }
3721
3722    function parseAskCards(doc) {
3723        var out = [];
3724        var cards = doc.querySelectorAll('article.cuk-ask-card');
3725        cards.forEach(function (card) {
3726            if (!card.querySelector('.cuk-ask-card__kind--guide')) return;
3727            var titleLink = card.querySelector('.cuk-ask-card__title a[href]');
3728            if (!titleLink) return;
3729            var url = titleLink.getAttribute('href');
3730            var title = titleLink.textContent.replace(/\s+/g, ' ').trim();
3731            if (!url || title.length < 5) return;
3732            var topicEl = card.querySelector('.cuk-ask-card__topic');
3733            var timeEl = card.querySelector('.cuk-ask-card__meta time');
3734            out.push({
3735                url: url,
3736                title: title,
3737                author: '',
3738                date: timeEl ? timeEl.textContent.replace(/\s+/g, ' ').trim() : '',
3739                topic: topicEl ? topicEl.textContent.replace(/\s+/g, ' ').trim() : ''
3740            });
3741        });
3742        return out;
3743    }
3744
3745    function parseViewsRows(doc) {
3746        var out = [];
3747        var nodes = doc.querySelectorAll('.views-row .node--type-guide, .views-row');
3748        nodes.forEach(function (node) {
3749            var titleLink = node.querySelector('.field--name-node-title a[href], .cuk-ask-card__title a[href]');
3750            if (!titleLink) return;
3751            var url = titleLink.getAttribute('href');
3752            var title = titleLink.textContent.replace(/\s+/g, ' ').trim();
3753            if (!url || title.length < 5) return;
3754            var authorEl = node.querySelector('.field--name-node-author .field__item');
3755            var timeEl = node.querySelector('time');
3756            out.push({
3757                url: url,
3758                title: title,
3759                author: authorEl ? authorEl.textContent.trim() : '',
3760                date: timeEl ? timeEl.textContent.replace(/\s+/g, ' ').trim() : '',
3761                topic: ''
3762            });
3763        });
3764        return out;
3765    }
3766
3767    function parseGuides(html) {
3768        var doc = new DOMParser().parseFromString(html, 'text/html');
3769        var out = parseAskCards(doc);
3770        if (!out.length) out = parseViewsRows(doc);
3771
3772        var seen = {};
3773        return out.filter(function (g) {
3774            if (seen[g.url]) return false;
3775            seen[g.url] = 1;
3776            return true;
3777        });
3778    }
3779
3780    function render(items) {
3781        listEl.innerHTML = items.map(buildItem).join('');
3782        Array.prototype.forEach.call(listEl.querySelectorAll('.guide-item'), function (el, i) {
3783            el.style.opacity = '0';
3784            el.style.transform = 'translateY(8px)';
3785            el.style.transition = 'opacity .3s ease, transform .3s ease';
3786            setTimeout(function () {
3787                el.style.opacity = '1';
3788                el.style.transform = 'translateY(0)';
3789            }, i * 80);
3790        });
3791    }
3792
3793    function paintByline(g, idx) {
3794        var byline = listEl.querySelector('[data-byline-index="' + idx + '"]');
3795        if (!byline) return;
3796        var html = bylineHtml(g);
3797        byline.innerHTML = html;
3798        if (html) byline.removeAttribute('hidden');
3799        else byline.setAttribute('hidden', '');
3800    }
3801
3802    function upgradeAuthors(items) {
3803        items.forEach(function (g, idx) {
3804            fetch(g.url, { credentials: 'same-origin', headers: { 'Accept': 'text/html' } })
3805                .then(function (r) { return r.ok ? r.text() : null; })
3806                .then(function (html) {
3807                    if (!html) return;
3808                    var doc = new DOMParser().parseFromString(html, 'text/html');
3809                    var link = doc.querySelector('.cuk-article a[rel="author"][href], a[rel="author"][href]');
3810                    if (link) {
3811                        var name = link.textContent.replace(/\s+/g, ' ').trim();
3812                        if (name) {
3813                            g.author = name;
3814                            g.authorUrl = link.getAttribute('href') || '';
3815                        }
3816                    }
3817                    if (!g.date) {
3818                        var timeEl = doc.querySelector('.cuk-article time, .meta time, time[datetime]');
3819                        if (timeEl) g.date = timeEl.textContent.replace(/\s+/g, ' ').trim();
3820                    }
3821                    paintByline(g, idx);
3822                })
3823                .catch(function () { /* keep date-only byline */ });
3824        });
3825    }
3826
3827    function showFallback() {
3828        render([
3829            { url: '/limited_companies/pension-contributions-tax-efficient-profit-extraction', title: 'Contractor limited company pension contributions: how to extract profit tax-efficiently?', author: 'Lauren Sears', date: '4 Sep 2026', topic: 'Limited companies' },
3830            { url: '/limited_companies_index/contractor-expenses-what-can-you-claim', title: 'The weird, the wonderful and the genuinely useful: what contractors get wrong about expenses', author: 'Lottie Hutchins', date: '3 Sep 2026', topic: 'Limited companies' },
3831            { url: '/umbrella_guides/right-to-work-changes-october-2026', title: 'Right to Work changes from October 2026: a contractor\u2019s explainer', author: '', date: '2 Sep 2026', topic: 'Umbrella companies' },
3832            { url: '/successful-contracting/fractional-interim-cto-roles-it-contractors', title: 'Are fractional and interim CTO roles ripe for IT contractors?', author: '', date: '11 Aug 2026', topic: 'Starting out' },
3833            { url: '/umbrella_guides/umbrella-vs-peo-2026', title: 'Umbrella, PEO/GPP, or salaried EOR. Which is up 153% in 2026?', author: '', date: '6 Aug 2026', topic: 'Umbrella companies' }
3834        ]);
3835    }
3836
3837    function load() {
3838        fetch('/latest-guides', {
3839            credentials: 'same-origin',
3840            headers: { 'Accept': 'text/html' }
3841        })
3842            .then(function (r) {
3843                if (!r.ok) throw new Error('HTTP ' + r.status);
3844                return r.text();
3845            })
3846            .then(function (html) {
3847                var guides = parseGuides(html).slice(0, 5);
3848                if (!guides.length) throw new Error('no guides');
3849                render(guides);
3850                upgradeAuthors(guides);
3851            })
3852            .catch(function (err) {
3853                console.warn('Latest guides widget:', err);
3854                showFallback();
3855            });
3856    }
3857
3858    if (document.readyState === 'loading') {
3859        document.addEventListener('DOMContentLoaded', load);
3860    } else {
3861        load();
3862    }
3863})();
3864</script>
3864
3865</div>
3866          </div>
3867
3868    </div>
3869  </div>
3870
3871
3872          </aside>
3873        </div>
3874        
3875      </div>
3876    </div>
3877  </main>
3878
3879    <footer class="site-footer cuk-footer text-white" role="contentinfo">
3880    <div class="container">
3881      <div class="row g-4 align-items-center">
3882        <div class="col-12 col-lg-3 cuk-footer-col cuk-footer-col--social">
3883          <a class="cuk-footer-logo" href="/" title="Contractor UK" rel="home" aria-label="Contractor UK — home">
3884                        <img class="cuk-footer-logo-img" src="/themes/custom/cuk_bs/images/logo-footer.png?v=20260611" alt="Contractor UK" width="336" height="76">
3885          </a>
3886            <section class="row region region-footer-first">
3887    <div id="block-sociallinksfooter" class="block-content-basic block block-block-content block-block-content39652218-2684-4ecc-a118-4ead61164ff4">
3888  
3889    
3890      <div class="content">
3891      
3892  <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-visually_hidden">
3893    <div class="field__label visually-hidden">Body</div>
3894              <div class="field__item"><ul>
3895<li><a href="https://www.linkedin.com/company/contractor-uk-limited">Linkedin</a></li>
3896<li><a href="https://twitter.com/itcontracting">Twitter</a></li>
3897</ul>
3898</div>
3899          </div>
3900
3901    </div>
3902  </div>
3903
3904  </section>
3905
3906        </div>
3907        <div class="col-12 col-lg-6 cuk-footer-col cuk-footer-col--menu">  <section class="row region region-footer-second">
3908    <nav role="navigation" aria-labelledby="block-cuk-bs-footer-menu" id="block-cuk-bs-footer" class="block block-menu navigation menu--footer">
3909            
3910  <h2 class="visually-hidden" id="block-cuk-bs-footer-menu">Footer menu</h2>
3911  
3912
3913        
3914              <ul class="clearfix nav flex-row" data-component-id="bootstrap:menu_columns">
3915                    <li class="nav-item">
3916                <a href="/about/about_us.html" class="nav-link nav-link--about-about-ushtml" data-drupal-link-system-path="node/4">About</a>
3917              </li>
3918                <li class="nav-item">
3919                <a href="/about/contacts.html" class="nav-link nav-link--about-contactshtml" data-drupal-link-system-path="node/6">Contact</a>
3920              </li>
3921                <li class="nav-item">
3922                <a href="/about/advertising.html" class="nav-link nav-link--about-advertisinghtml" data-drupal-link-system-path="node/5">Advertising</a>
3923              </li>
3924                <li class="nav-item">
3925                <a href="/about/privacy_statement.html" class="nav-link nav-link--about-privacy-statementhtml" data-drupal-link-system-path="node/1309">Privacy</a>
3926              </li>
3927                <li class="nav-item">
3928                <a href="/about/terms_conditions.html" class="nav-link nav-link--about-terms-conditionshtml" data-drupal-link-system-path="node/1310">Terms &amp; Conditions</a>
3929              </li>
3930        </ul>
3931  
3932
3933
3934
3935  </nav>
3936
3937  </section>
3938</div>
3939        <div class="col-12 col-lg-3 cuk-footer-col cuk-footer-col--brand text-lg-end">  <section class="row region region-footer-third">
3940    <div id="block-footerlogo" class="block-content-basic block block-block-content block-block-contentc5d0cced-985d-4ed9-9dbe-fc8fe0228af0">
3941  
3942    
3943      <div class="content">
3944      
3945  <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-visually_hidden">
3946    <div class="field__label visually-hidden">Body</div>
3947              <div class="field__item"><div style="float: right"><p><a class="footer-logo" href="/">ContractorUK</a></p>
3948
3949<p>All Content © Rocky Messissi LTD</p>
3950</div>
3951</div>
3952          </div>
3953
3954    </div>
3955  </div>
3956
3957  </section>
3958</div>
3959      </div>
3960    </div>
3961  </footer>
3962
3963  
3964</div>
3965
3966  </div>
3967
3968    
3969    
3969<script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","pathPrefix":"","currentPath":"node\/13105","currentPathIsAdmin":false,"isFront":true,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"google_analytics":{"account":"UA-2641187-1","trackOutbound":true,"trackMailto":true,"trackDownload":true,"trackDownloadExtensions":"7z|aac|arc|arj|asf|asx|avi|bin|csv|doc(x|m)?|dot(x|m)?|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|msi|msp|pdf|phps|png|ppt(x|m)?|pot(x|m)?|pps(x|m)?|ppam|sld(x|m)?|thmx|qtm?|ra(m|r)?|sea|sit|tar|tgz|torrent|txt|wav|wma|wmv|wpd|xls(x|m|b)?|xlt(x|m)|xlam|xml|z|zip","trackDomainMode":1},"user":{"uid":0,"permissionsHash":"61a7fabcbb1b5720f817934e8a573e342aa958a6b33f782b1bf3d4524257a2df"}}</script>
vendor: 1 bytes, line 3969
3969
3970<script src="/sites/default/files/js/js_Sy8HKIUYw_XWNEUmslBdHavnPIV66YHZCsiL-8Kr_gc.js?scope=footer&amp;delta=0&amp;language=en&amp;theme=cuk_bs&amp;include=eJxdikEOgCAMBD-E8iRSClZi7SZSD_xeDxoTbzOToVIcZCPSA_NywDzwuaXcI8N6_VQUmXTqPrSZvHXFXoMAojWRkQ5vfL-_cAGgpCmT"></script>
vendor: 1 bytes, line 3970
3970
3971<script src="https://static.addtoany.com/menu/page.js" defer></script>
vendor: 1 bytes, line 3971
3971
3972<script src="/sites/default/files/js/js_4i_i_NE-CDBdwdTs6CbHmx4Wb86dGYArShTGbnXA_dM.js?scope=footer&amp;delta=2&amp;language=en&amp;theme=cuk_bs&amp;include=eJxdikEOgCAMBD-E8iRSClZi7SZSD_xeDxoTbzOToVIcZCPSA_NywDzwuaXcI8N6_VQUmXTqPrSZvHXFXoMAojWRkQ5vfL-_cAGgpCmT"></script>
3972
3973
3974<script type="application/ld+json">
3975    {
3976        "@context": "http://schema.org",
3977        "@type": "Organization",
3978        "name": "Contractor UK",
3979        "legalName": "Contractor UK Limited",
3980        "url": "https://www.contractoruk.com/",
3981                "logo": "https://www.contractoruk.com/themes/custom/cuk_bs/logo.png",
3982        "foundingDate": "1999",
3983        "vatID": "GB714769609",
3984        "address": {
3985            "@type": "PostalAddress",
3986            "streetAddress": "1 Northumberland Avenue",
3987            "addressLocality": "Trafalgar Square",
3988            "addressRegion": "London",
3989            "postalCode": "WC2N 5BW",
3990            "addressCountry": "UK"
3991        },
3992        "contactPoint": {
3993            "@type": "ContactPoint",
3994            "contactType": "customer support",
3995            "email": "[email protected]",
3996            "url": "https://www.contractoruk.com/about/contacts.html",
3997            "telephone": "+44 (0)207 872 5448"
3998        },
3999        "sameAs": [
4000            "https://beta.companieshouse.gov.uk/company/03574763",
4001            "https://twitter.com/itcontracting",
4002            "https://www.linkedin.com/company/contractor-uk-limited"
4003        ]
4004    }
4005    </script>
4005
4006  </body>
4007</html>

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