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 & 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&language=en&theme=cuk_bs&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&language=en&theme=cuk_bs&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 & 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 & 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 & 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 & 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 & guides, contract jobs, rates, calculators & 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 & 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 & more — <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 — <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 & 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 & guides…</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,'&').replace(/"/g,'"').replace(/</g,'<').replace(/>/g,'>'); } 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 →</a> 2978 <a href="https://www.contractoruk.com/latest-guides" class="view-link">View All Guides →</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 & 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'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 & 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&id=ce9f189114&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 →</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 — no accounts required</p> 3451 <span class="partner-card__cta">Learn more →</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’ Voluntary Liquidation specialists</p> 3456 <span class="partner-card__cta">Learn more →</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 & public liability cover</p> 3461 <span class="partner-card__cta">Learn more →</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 & freelancer accountants</p> 3466 <span class="partner-card__cta">Learn more →</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 — SIPPs & ISAs from £5.99/month</p> 3471 <span class="partner-card__cta">Learn more →</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 →</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 { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[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 & 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&delta=0&language=en&theme=cuk_bs&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&delta=2&language=en&theme=cuk_bs&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.