PageSourceSearch

https://www.platinumsigns.com.au/

html platinumsigns.com.au collected 2026-10-08 08:09:31 UTC 220,213 bytes, 4,921 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-AU">
3  <head>
4        <meta http-equiv="Content-Language" content="pt-br" />
5    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6    <meta http-equiv="X-UA-Compatible" content="IE=edge">
7    
8
9    <link rel="canonical" href="https://www.platinumsigns.com.au/" />
10    <base href="/">
11    <meta name="robots" content="index, follow">
12
13    <title>Signage &amp; Custom Business Signs Australia | Platinum Signs</title>
14    <meta name="description" content="Signs and signage for businesses Australia-wide: shopfronts, 3D letters, office and building signs. Order online with instant prices or get a managed quote.">
15
16    <meta name="HandheldFriendly" content="True">
17		<meta name="MobileOptimized" content="320">
18		<meta name="viewport" content="width=device-width, initial-scale=1">
19    
20    
21    
22    <!-- PS LCP PRELOAD START -->
23<link rel="preload" as="image" href="/images/homepage-hero/dior-shopfront-960.webp" imagesrcset="/images/homepage-hero/dior-shopfront-640.webp 640w, /images/homepage-hero/dior-shopfront-960.webp 960w, /images/homepage-hero/dior-shopfront-1280.webp 1280w, /images/homepage-hero/dior-shopfront-1920.webp 1920w" imagesizes="(max-width: 920px) calc(100vw - 36px), 54vw" fetchpriority="high">
24<!-- PS LCP PRELOAD END -->
25    <link rel="shortcut icon" href="/images/favicon.png">
26    
27    <meta property="og:image" content="/images/og.jpg">
28    <meta property="og:image:type" content="image/jpeg">
29    <meta property="og:image:width" content="300">
30    <meta property="og:image:height" content="300">
31
32
33    
34      <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css" />
35      <link rel="preload" href="css/font-awesome.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> <noscript><link rel="stylesheet" href="css/font-awesome.css"></noscript>
36      <link rel="preload" href="css/slick.css?v=1.01" as="style" onload="this.onload=null;this.rel='stylesheet'"> <noscript><link rel="stylesheet" href="css/slick.css?v=1.01"></noscript>
37      <link rel="preload" href="css/shortcodes.css?v=1.10" as="style" onload="this.onload=null;this.rel='stylesheet'"> <noscript><link rel="stylesheet" href="css/shortcodes.css?v=1.09"></noscript>
38      <link rel="preload" href="css/main-home-no-font.css?v=0265efdbdf6d" as="style" onload="this.onload=null;this.rel='stylesheet'"> <noscript><link rel="stylesheet" href="css/main-home-no-font.css?v=0265efdbdf6d"></noscript>
39      <link rel="preload" href="css/megamenu.css?v=1.04" as="style" onload="this.onload=null;this.rel='stylesheet'"> <noscript><link rel="stylesheet" href="css/megamenu.css?v=1.04"></noscript>
40      <link rel="preload" href="css/responsive.css?v=1.08" as="style" onload="this.onload=null;this.rel='stylesheet'"> <noscript><link rel="stylesheet" href="css/responsive.css?v=1.08"></noscript>
41      <link rel="stylesheet" type="text/css" href="css/libs.css?v=38deca69b139" />
42      <style type="text/css">
43        .modal-backdrop.show {
44          display: none;
45
46        }
47      
48.ps-v5-production { padding: 96px 0; background: #fff; }
49.ps-v5-production__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 54px; }
50@media (max-width: 1180px) { .ps-v5-production__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
51@media (max-width: 900px) { .ps-v5-production { padding: 78px 0; } }
52@media (max-width: 640px) { .ps-v5-production { padding: 62px 0; } .ps-v5-production__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 38px; } }
53</style>
54    
55    
56    
57    
58    
58<script id="ps-clarity-loader">
59      (function(c,l,a,r,i,t,y){
60          var h=l.location.hostname.toLowerCase().replace(/\.$/, '');
61          var p=h==='platinumsigns.com.au'||h==='www.platinumsigns.com.au';
62          var u=new URLSearchParams(l.location.search);
63          var n=p&&(u.get('ps_analytics_canary')==='1'||u.get('utm_medium')==='internal_test'||u.get('utm_source')==='codex_qa');
64          var v=h.endsWith('.vercel.app')&&u.get('ps_analytics_canary')==='1';
65          var q=n||v;
66          if(!p&&!v)return;
67          c.psAnalyticsTrafficType=q?'internal_test':'external';
68          c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
69          t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
70          y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
71          c[a]('set','ps_surface','legacy_www');
72          c[a]('set','ps_environment',q?'analytics_canary':'production');
73          c[a]('set','ps_traffic_type',c.psAnalyticsTrafficType);
74          c[a]('set','ps_hostname',h);
75      })(window, document, "clarity", "script", "rkbo26qxda");
76    </script>
76
77    
77<script id="ps-ga4-config">
78      window.dataLayer = window.dataLayer || [];
79      function gtag(){dataLayer.push(arguments);}
80      (function (w, d) {
81        var hostname = w.location.hostname.toLowerCase().replace(/\.$/, '');
82        var production = hostname === 'platinumsigns.com.au' || hostname === 'www.platinumsigns.com.au';
83        var params = new URLSearchParams(w.location.search);
84        var internal = production && (params.get('ps_analytics_canary') === '1' || params.get('utm_medium') === 'internal_test' || params.get('utm_source') === 'codex_qa');
85        var previewCanary = hostname.endsWith('.vercel.app') && params.get('ps_analytics_canary') === '1';
86        var canary = internal || previewCanary;
87        w.psAnalyticsTrafficType = canary ? 'internal_test' : (production ? 'external' : 'disabled');
88        var psAutomatedClient = false;
89        try {
90          psAutomatedClient = navigator.webdriver === true
91            || (w.screen && (w.screen.width === w.screen.height || (w.screen.width === 1280 && w.screen.height === 1200)))
92            || /HeadlessChrome|PhantomJS|Puppeteer|Playwright|Selenium|Electron\//i.test(navigator.userAgent || '');
93        } catch (e) { psAutomatedClient = false; }
94        if (psAutomatedClient) { w.psAnalyticsTrafficType = 'automated'; return; }
95        if (!production && !previewCanary) return;
96
97        gtag('js', new Date());
98        var gaConfig = {
99          'send_page_view': true,
100          'ps_surface': 'legacy_www',
101          'ps_environment': canary ? 'analytics_canary' : 'production',
102          'ps_traffic_type': w.psAnalyticsTrafficType
103        };
104        if (canary) gaConfig.traffic_type = 'internal';
105        gtag('config', 'G-HTQ55NLQ9D', gaConfig);
106        if (production && !canary) gtag('config', 'AW-866153381');
107
108        var script = d.createElement('script');
109        script.async = true;
110        script.src = 'https://www.googletagmanager.com/gtag/js?id=G-HTQ55NLQ9D';
111        d.head.appendChild(script);
112      })(window, document);
113    </script>
113
114    
114<script>
115  // Bloqueia o botão direito do mouse
116  document.addEventListener('contextmenu', function (e) {
117    //e.preventDefault();
118  });
119</script>
119
120
121
122
123
124  
125  <style>
126    .form_banner h4 {
127      color: #FFF;
128    }
129    .form_banner .text-black {
130      color: #FFF !important;
131    }
132  </style>
133  
134    <style id="ps-homepage-hero-form-css" data-css-sha256="e009c67e518d">
135/* PS PREMIUM HOMEPAGE HERO + QUOTE FORM START */
136
137/* Homepage-only translation of the approved V5 visual system. The legacy
138   runtime and navigation destinations remain intact. */
139
140/* The live legacy homepage stylesheet gives every button 40px horizontal
141   padding. Reset only the mobile-header submenu control on this page. */
142#ps-header-v3 .psh3-mobile-parent button {
143    padding: 0;
144}
145
146.ps-v5-homepage {
147    --ps-v5-primary: #b3086d;
148    --ps-v5-cyan: #00aeef;
149    --ps-v5-cyan-ink: #007a9e;
150    --ps-v5-text: #101010;
151    --ps-v5-muted: #687080;
152    --ps-v5-border: #e2e4e9;
153    --ps-v5-soft: #f7f8fb;
154    overflow: hidden;
155    background: #fff;
156    color: var(--ps-v5-text);
157    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
158}
159
160body.ps-v5-homepage-enabled {
161    --ps-v5-primary: #b3086d;
162    --ps-v5-cyan: #00aeef;
163    --ps-v5-cyan-ink: #007a9e;
164    --ps-v5-text: #101010;
165    --ps-v5-muted: #687080;
166    --ps-v5-border: #e2e4e9;
167    --ps-v5-soft: #f7f8fb;
168    /* One restrained display scale for the homepage. The proof value is the
169       sole oversized exception because it is data, not an editorial heading. */
170    --ps-v5-type-display-h1: clamp(42px, 4vw, 60px);
171    --ps-v5-type-editorial-h2: clamp(32px, 3.2vw, 44px);
172    --ps-v5-type-numeric-proof: clamp(42px, 5vw, 64px);
173    --ps-v5-type-display-weight: 800;
174    --ps-v5-type-editorial-weight: 700;
175    --ps-v5-type-display-leading: 1.04;
176    --ps-v5-type-editorial-leading: 1.12;
177    --ps-v5-type-display-tracking: -.035em;
178    --ps-v5-type-editorial-tracking: -.025em;
179}
180
181body.ps-v5-homepage-enabled main,
182body.ps-v5-homepage-enabled .ps-v5-closing {
183    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
184}
185
186.ps-v5-shell {
187    width: min(1280px, calc(100% - 48px));
188    margin: 0 auto;
189}
190
191/* V5-inspired header proportions, while preserving the legacy navigation,
192   search endpoint, phone destination and mobile controller. */
193body.ps-v5-homepage-enabled #masthead,
194body.ps-v5-homepage-enabled #site-header-menu,
195body.ps-v5-homepage-enabled #site-header-menu .site-header-menu-inner {
196    background: #050505 !important;
197}
198
199body.ps-v5-homepage-enabled #site-header-menu .site-header-menu-inner {
200    border-bottom: 1px solid rgba(255, 255, 255, .08);
201    box-shadow: 0 8px 32px rgba(8, 10, 25, .12);
202}
203
204body.ps-v5-homepage-enabled #site-header-menu .container {
205    width: min(1280px, calc(100% - 36px));
206    max-width: 1280px;
207}
208
209body.ps-v5-homepage-enabled .site-navigation {
210    min-height: 82px;
211    flex-wrap: nowrap;
212    gap: 18px;
213}
214
215body.ps-v5-homepage-enabled .site-branding {
216    flex: 0 0 160px;
217}
218
219body.ps-v5-homepage-enabled #logo-img {
220    width: 160px !important;
221    max-width: none !important;
222    height: auto;
223}
224
225body.ps-v5-homepage-enabled .main-menu {
226    width: auto !important;
227    flex: 1 1 auto;
228}
229
230body.ps-v5-homepage-enabled .main-menu > ul.menu {
231    display: flex;
232    flex-wrap: nowrap;
233    align-items: center;
234    justify-content: center;
235    gap: clamp(10px, 1.35vw, 24px);
236}
237
238body.ps-v5-homepage-enabled .main-menu > ul.menu > li {
239    flex: 0 0 auto;
240}
241
242body.ps-v5-homepage-enabled .main-menu > ul > li > a {
243    padding-right: 10px !important;
244    padding-left: 10px !important;
245    color: rgba(255, 255, 255, .88) !important;
246    font-size: 15px !important;
247    font-weight: 650 !important;
248    letter-spacing: -.01em;
249}
250
251body.ps-v5-homepage-enabled .main-menu > ul > li > a:hover,
252body.ps-v5-homepage-enabled .main-menu > ul > li > a:focus-visible {
253    color: #fff !important;
254}
255
256body.ps-v5-homepage-enabled .header_extra .btn_phone {
257    min-height: 46px;
258    padding: 12px 16px;
259    border: 0;
260    border-radius: 10px;
261    background: var(--ps-v5-cyan) !important;
262    box-shadow: 0 10px 24px rgba(0, 174, 239, .18);
263    color: #050505 !important;
264    font-size: 14px;
265    font-weight: 750;
266}
267
268body.ps-v5-homepage-enabled .header_extra {
269    display: flex !important;
270    flex: 0 0 auto;
271    gap: 10px;
272}
273
274body.ps-v5-homepage-enabled .header_extra > div {
275    margin-left: 0 !important;
276}
277
278body.ps-v5-homepage-enabled .header_search {
279    width: 44px;
280    margin-right: 0 !important;
281}
282
283body.ps-v5-homepage-enabled .header_search > .search_btn {
284    display: inline-flex !important;
285    width: 44px;
286    height: 44px;
287    align-items: center;
288    justify-content: center;
289    border: 1px solid rgba(255, 255, 255, .16);
290    border-radius: 10px;
291    background: rgba(255, 255, 255, .08);
292}
293
294body.ps-v5-homepage-enabled #totop {
295    width: 48px !important;
296    min-width: 48px;
297    height: 48px !important;
298    min-height: 48px;
299    align-items: center;
300    justify-content: center;
301}
302
303body.ps-v5-homepage-enabled #totop.top-visible {
304    display: flex !important;
305}
306
307.ps-v5-hero {
308    padding: 126px 0 82px;
309    border-bottom: 1px solid var(--ps-v5-border);
310    background: #fff;
311}
312
313.ps-v5-hero__grid {
314    display: grid;
315    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
316    align-items: center;
317    gap: clamp(48px, 6vw, 84px);
318}
319
320.ps-v5-eyebrow {
321    margin: 0 0 22px !important;
322    color: var(--ps-v5-primary) !important;
323    font-size: 12px !important;
324    font-weight: 800 !important;
325    line-height: 1.25 !important;
326    letter-spacing: .15em;
327    text-transform: uppercase;
328}
329
330.ps-v5-hero__title {
331    max-width: 630px;
332    margin: 0 !important;
333    color: var(--ps-v5-text) !important;
334    font-size: var(--ps-v5-type-display-h1) !important;
335    font-weight: var(--ps-v5-type-display-weight) !important;
336    line-height: var(--ps-v5-type-display-leading) !important;
337    letter-spacing: var(--ps-v5-type-display-tracking) !important;
338}
339
340.ps-v5-hero__intro {
341    max-width: 610px;
342    margin: 28px 0 0 !important;
343    color: var(--ps-v5-muted) !important;
344    font-size: clamp(17px, 1.5vw, 20px) !important;
345    font-weight: 450 !important;
346    line-height: 1.65 !important;
347}
348
349.ps-v5-hero__actions {
350    display: grid;
351    grid-template-columns: repeat(2, minmax(0, 1fr));
352    gap: 14px;
353    max-width: 610px;
354    margin-top: 34px;
355}
356
357.ps-v5-button {
358    display: inline-flex;
359    min-height: 54px;
360    align-items: center;
361    justify-content: center;
362    gap: 12px;
363    padding: 14px 20px;
364    border: 1px solid transparent;
365    border-radius: 12px;
366    font-size: 15px;
367    font-weight: 780;
368    line-height: 1.25;
369    text-align: center;
370    text-decoration: none !important;
371    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
372}
373
374.ps-v5-button:hover,
375.ps-v5-button:focus-visible {
376    transform: translateY(-2px);
377}
378
379.ps-v5-button--primary {
380    background: var(--ps-v5-cyan);
381    box-shadow: 0 12px 28px rgba(0, 174, 239, .2);
382    color: #050505 !important;
383}
384
385.ps-v5-button--primary:hover,
386.ps-v5-button--primary:focus-visible {
387    background: #009bd5;
388    box-shadow: 0 14px 32px rgba(0, 174, 239, .28);
389}
390
391.ps-v5-button--secondary {
392    border-color: var(--ps-v5-border);
393    background: var(--ps-v5-text);
394    color: #fff !important;
395}
396
397.ps-v5-button--secondary:hover,
398.ps-v5-button--secondary:focus-visible {
399    background: #090a16;
400    box-shadow: 0 14px 28px rgba(8, 10, 25, .15);
401}
402
403.ps-v5-hero__proof {
404    display: flex;
405    align-items: center;
406    gap: 10px;
407    margin: 21px 0 0 !important;
408    color: var(--ps-v5-muted) !important;
409    font-size: 13px !important;
410    font-weight: 650 !important;
411    line-height: 1.5;
412}
413
414.ps-v5-hero__proof > span {
415    width: 8px;
416    height: 8px;
417    flex: 0 0 8px;
418    border-radius: 50%;
419    background: var(--ps-v5-primary);
420}
421
422.ps-v5-hero__media {
423    position: relative;
424    padding-bottom: 0;
425}
426
427.ps-v5-crossfade {
428    position: relative;
429    aspect-ratio: 4 / 3;
430    overflow: hidden;
431    border: 1px solid var(--ps-v5-border);
432    border-radius: 20px;
433    background: #ecebea;
434    box-shadow: 0 26px 70px rgba(20, 23, 40, .14);
435}
436
437.ps-v5-crossfade__slides,
438.ps-v5-crossfade__slide,
439.ps-v5-crossfade__slide img,
440.ps-v5-crossfade__image {
441    display: block;
442    width: 100%;
443    height: 100%;
444}
445
446.ps-v5-crossfade__slides {
447    position: absolute;
448    inset: 0;
449}
450
451.ps-v5-crossfade__slide {
452    position: absolute;
453    inset: 0;
454    opacity: 0;
455    pointer-events: none;
456    transition: opacity 1s ease-in-out;
457}
458
459.ps-v5-crossfade__slide.is-active {
460    z-index: 1;
461    opacity: 1;
462    pointer-events: auto;
463}
464
465.ps-v5-crossfade__slide--base,
466.ps-v5-crossfade__slide--base.is-active {
467    z-index: 0;
468    opacity: 1;
469}
470
471.ps-v5-crossfade__slide--base {
472    pointer-events: none;
473}
474
475.ps-v5-crossfade__slide--base.is-active {
476    pointer-events: auto;
477}
478
479body.ps-v5-homepage-enabled #sliderhome .ps-v5-crossfade__slide img {
480    height: 100%;
481    object-fit: cover;
482    object-position: center;
483}
484
485.ps-v5-crossfade__image {
486    object-fit: cover;
487}
488
489.ps-v5-crossfade__progress {
490    position: absolute;
491    right: 16px;
492    bottom: 16px;
493    left: 16px;
494    z-index: 3;
495    display: flex;
496    gap: 6px;
497}
498
499.ps-v5-crossfade__bar {
500    height: 3px;
501    flex: 1 1 0;
502    overflow: hidden;
503    border-radius: 999px;
504    background: rgba(255, 255, 255, .38);
505}
506
507.ps-v5-crossfade__bar i {
508    display: block;
509    width: 0;
510    height: 3px;
511    border-radius: 999px;
512    background: #fff;
513}
514
515.ps-v5-crossfade__bar.is-complete i {
516    width: 100%;
517}
518
519.ps-v5-crossfade__bar.is-active i {
520    animation: ps-v5-progress 5.2s linear forwards;
521}
522
523@keyframes ps-v5-progress {
524    from { width: 0; }
525    to { width: 100%; }
526}
527
528.ps-v5-quote-section {
529    padding: 42px 0 48px;
530    border-bottom: 1px solid var(--ps-v5-border);
531    background: var(--ps-v5-soft);
532    scroll-margin-top: 96px;
533}
534
535.ps-v5-quote-layout {
536    display: grid;
537    grid-template-columns: 280px minmax(0, 600px);
538    align-items: center;
539    justify-content: center;
540    gap: clamp(48px, 7vw, 82px);
541}
542
543.ps-v5-quote-visual {
544    position: relative;
545    width: 260px;
546    aspect-ratio: 4 / 5;
547    margin: 0;
548    isolation: isolate;
549}
550
551.ps-v5-quote-visual::after {
552    content: "";
553    position: absolute;
554    z-index: -1;
555    inset: 14px -14px -14px 14px;
556    border-radius: 20px;
557    background: linear-gradient(145deg, rgba(179, 8, 109, .15), rgba(0, 174, 239, .14));
558}
559
560.ps-v5-quote-visual img {
561    position: absolute;
562    inset: 0;
563    display: block;
564    width: 100%;
565    height: 100%;
566    border: 1px solid rgba(16, 16, 16, .08);
567    border-radius: 20px;
568    object-fit: cover;
569    object-position: 50% 50%;
570    filter: saturate(.86) contrast(1.03);
571    box-shadow: 0 18px 45px rgba(20, 23, 40, .13);
572}
573
574.ps-v5-quote-slide {
575    z-index: 1;
576    opacity: 0;
577    transition: opacity 1.2s ease;
578}
579
580.ps-v5-quote-slide.is-active {
581    z-index: 2;
582    opacity: 1;
583}
584
585.ps-sr-only {
586    position: absolute !important;
587    width: 1px !important;
588    height: 1px !important;
589    padding: 0 !important;
590    margin: -1px !important;
591    overflow: hidden !important;
592    clip: rect(0, 0, 0, 0) !important;
593    white-space: nowrap !important;
594    border: 0 !important;
595}
596
597.ps-premium-quote {
598    --ps-quote-radius: 20px;
599    position: relative;
600    top: auto !important;
601    right: auto !important;
602    bottom: auto !important;
603    left: auto !important;
604    width: 100%;
605    max-width: 600px;
606    max-height: none !important;
607    margin: 0 auto;
608    padding: clamp(24px, 3vw, 28px);
609    border: 1px solid var(--ps-v5-border);
610    border-radius: var(--ps-quote-radius);
611    background: #fff;
612    box-shadow: 0 22px 60px rgba(20, 23, 40, .10);
613    color: var(--ps-v5-text);
614    overflow: visible !important;
615    text-align: left;
616    transform: none !important;
617}
618
619.ps-premium-quote::before {
620    content: "";
621    position: absolute;
622    z-index: 1;
623    top: -1px;
624    right: calc(var(--ps-quote-radius) - 1px);
625    left: calc(var(--ps-quote-radius) - 1px);
626    height: 3px;
627    border-radius: 999px;
628    background: linear-gradient(90deg, var(--ps-v5-primary), #8d2f8f 52%, var(--ps-v5-cyan));
629}
630
631.ps-premium-quote .ps-quote-noscript {
632    margin: 0 !important;
633    color: #343944 !important;
634    font-size: 15px !important;
635    line-height: 1.6 !important;
636}
637
638.ps-premium-quote .ps-quote-noscript a {
639    color: #a90663;
640    font-weight: 750;
641}
642
643.ps-premium-quote .ps-quote-heading {
644    display: flex;
645    align-items: flex-start;
646    justify-content: space-between;
647    gap: 20px;
648    margin-bottom: 8px;
649}
650
651.ps-premium-quote .ps-quote-eyebrow {
652    margin: 0 0 6px !important;
653    color: var(--ps-v5-primary) !important;
654    font-size: 10px !important;
655    font-weight: 820 !important;
656    line-height: 1.2;
657    letter-spacing: .14em;
658    text-transform: uppercase;
659}
660
661.ps-premium-quote h3,
662.ps-premium-quote h3[style],
663.ps-premium-quote h4,
664.ps-premium-quote h4[style] {
665    margin: 0 !important;
666    color: var(--ps-v5-text) !important;
667    font-size: 31px !important;
668    font-weight: 820 !important;
669    line-height: 1.08 !important;
670    letter-spacing: -.025em;
671}
672
673.ps-premium-quote h3::after,
674.ps-premium-quote h4::after {
675    content: none !important;
676}
677
678.ps-premium-quote .ps-quote-heading h3:focus {
679    outline: none;
680}
681
682.ps-premium-quote .ps-quote-intro {
683    margin: 0 0 20px !important;
684    color: var(--ps-v5-muted) !important;
685    font-size: 13px !important;
686    line-height: 1.5 !important;
687}
688
689.ps-premium-quote .ps-quote-form {
690    display: block;
691}
692
693.ps-premium-quote .ps-quote-step {
694    min-width: 0;
695    margin: 0;
696    padding: 0;
697    border: 0;
698}
699
700.ps-premium-quote .ps-quote-form:not(.is-enhanced) .ps-quote-step + .ps-quote-step {
701    margin-top: 28px;
702    padding-top: 28px;
703    border-top: 1px solid var(--ps-v5-border);
704}
705
706.ps-premium-quote .ps-quote-progress {
707    flex: none;
708    margin: 4px 0 0 !important;
709    color: #777d8b !important;
710    font-size: 11px !important;
711    font-weight: 650 !important;
712    line-height: 1.2 !important;
713    white-space: nowrap;
714}
715
716.ps-premium-quote .ps-field,
717.ps-premium-quote .ps-submit-group,
718.ps-premium-quote #addFile {
719    min-width: 0;
720    margin: 0 !important;
721}
722
723.ps-premium-quote .ps-field--full,
724.ps-premium-quote .ps-submit-group,
725.ps-premium-quote #addFile {
726    grid-column: 1 / -1;
727}
728
729.ps-premium-quote label {
730    display: flex;
731    align-items: baseline;
732    justify-content: space-between;
733    gap: 8px;
734    margin: 0 2px 6px;
735    color: #343944;
736    font-size: 12px;
737    font-weight: 760;
738    line-height: 1.2;
739}
740
741.ps-premium-quote label > span:not(.ps-optional) {
742    color: #b3086d;
743}
744
745.ps-premium-quote .ps-optional {
746    color: #9297a2;
747    font-size: 9px !important;
748    font-weight: 700 !important;
749    letter-spacing: .04em;
750    text-transform: uppercase;
751}
752
753.ps-premium-quote .form-control,
754.ps-premium-quote .form-control[style] {
755    width: 100%;
756    height: 48px !important;
757    margin: 0;
758    padding: 11px 13px !important;
759    border: 1px solid #d8dce4;
760    border-radius: 10px;
761    outline: 0;
762    background: #fff;
763    box-shadow: 0 1px 2px rgba(16, 24, 40, .035);
764    color: #20242c;
765    font-size: 14px;
766    font-weight: 550;
767    line-height: 1.3;
768    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
769}
770
771.ps-premium-quote .form-control::placeholder {
772    color: #9297a2;
773    opacity: 1;
774}
775
776.ps-premium-quote .form-control:hover {
777    border-color: #b8bdc8;
778}
779
780.ps-premium-quote .form-control:focus {
781    border-color: var(--ps-v5-primary);
782    background: #fff;
783    box-shadow: 0 0 0 4px rgba(236, 1, 141, .10);
784}
785
786.ps-premium-quote textarea.form-control,
787.ps-premium-quote textarea.form-control[style] {
788    min-height: 96px !important;
789    height: 96px !important;
790    resize: vertical;
791}
792
793.ps-premium-quote .ps-field-error {
794    margin: 6px 2px 0 !important;
795    color: #a90663 !important;
796    font-size: 11px !important;
797    line-height: 1.35 !important;
798}
799
800.ps-premium-quote [aria-invalid="true"] {
801    border-color: #b3086d !important;
802}
803
804.ps-premium-quote .ps-quote-helper,
805.ps-premium-quote .ps-quote-more {
806    margin-top: 14px;
807}
808
809.ps-premium-quote .ps-quote-helper summary,
810.ps-premium-quote .ps-quote-more summary {
811    width: fit-content;
812    color: #626978;
813    font-size: 12px;
814    font-weight: 700;
815    cursor: pointer;
816}
817
818.ps-premium-quote .ps-quote-helper[open] summary,
819.ps-premium-quote .ps-quote-more[open] summary {
820    margin-bottom: 10px;
821}
822
823.ps-premium-quote .ps-quote-starters {
824    display: flex;
825    flex-wrap: wrap;
826    gap: 8px;
827}
828
829.ps-premium-quote .ps-quote-starters button {
830    min-height: 44px;
831    padding: 9px 13px !important;
832    border: 1px solid #dce0e7;
833    border-radius: 999px;
834    background: #fff;
835    color: #414754;
836    font-size: 12px;
837    font-weight: 700;
838}
839
840.ps-premium-quote .ps-upload-row {
841    display: grid;
842    grid-template-columns: minmax(0, 1fr) auto;
843    align-items: stretch;
844    gap: 10px;
845}
846
847.ps-premium-quote input[type="file"].form-control {
848    min-width: 0;
849    padding: 5px 8px !important;
850    color: #6a707c;
851    font-size: 12px;
852}
853
854.ps-premium-quote input[type="file"]::file-selector-button {
855    margin: -3px 10px -3px -5px;
856    padding: 10px 12px;
857    border: 0;
858    border-radius: 8px;
859    background: #f0f2f5;
860    color: #272c35;
861    font: inherit;
862    font-weight: 760;
863    cursor: pointer;
864}
865
866.ps-premium-quote .ps-upload-row #button-addon1 {
867    width: auto !important;
868    min-height: 48px;
869    margin: 0 !important;
870    padding: 0 16px !important;
871    border: 1px solid #d8dce4;
872    border-radius: 10px;
873    background: var(--ps-v5-soft);
874    color: #343944;
875    font-size: 12px;
876    font-weight: 760;
877}
878
879.ps-premium-quote .ps-upload-row #button-addon1:hover,
880.ps-premium-quote .ps-upload-row #button-addon1:focus-visible {
881    border-color: var(--ps-v5-primary);
882    background: #fff6fb;
883    color: #9d0060;
884}
885
886.ps-premium-quote #ps-upload-hint {
887    display: block;
888    margin: 5px 2px 0;
889    color: #8b909a !important;
890    font-size: 10px;
891    line-height: 1.3;
892}
893
894.ps-premium-quote .ps-upload-field {
895    margin-top: 12px !important;
896}
897
898.ps-premium-quote .ps-upload-field .ps-upload-link {
899    position: relative;
900    display: inline-flex;
901    min-height: 44px;
902    width: fit-content;
903    align-items: center;
904    justify-content: flex-start;
905    gap: 8px;
906    margin: 0;
907    color: #a90663;
908    cursor: pointer;
909}
910
911.ps-premium-quote .ps-upload-field .ps-upload-link > span:first-child {
912    font-size: 17px;
913    font-weight: 500;
914}
915
916.ps-premium-quote .ps-upload-field input[type="file"] {
917    position: absolute;
918    z-index: 2;
919    inset: 0;
920    width: 100%;
921    height: 100% !important;
922    margin: 0;
923    padding: 0 !important;
924    opacity: 0;
925    cursor: pointer;
926    border: 0;
927}
928
929.ps-premium-quote .ps-upload-field:focus-within .ps-upload-link {
930    outline: 3px solid rgba(179, 8, 109, .24);
931    outline-offset: 3px;
932}
933
934.ps-premium-quote .ps-upload-status {
935    margin: 5px 2px 0 !important;
936    color: #646b78 !important;
937    font-size: 10px !important;
938    font-weight: 650 !important;
939    line-height: 1.35 !important;
940}
941
942.ps-premium-quote .ps-upload-status:empty {
943    display: none;
944}
945
946.ps-premium-quote .ps-upload-previews {
947    display: flex;
948    gap: 9px;
949    max-width: 100%;
950    margin-top: 9px;
951    padding: 1px 2px 7px;
952    overflow-x: auto;
953    overscroll-behavior-inline: contain;
954    scrollbar-width: thin;
955}
956
957.ps-premium-quote .ps-upload-previews[hidden] {
958    display: none;
959}
960
961.ps-premium-quote .ps-upload-preview {
962    display: grid;
963    grid-template-columns: 68px minmax(0, 1fr) 30px;
964    flex: 0 0 214px;
965    min-width: 0;
966    min-height: 76px;
967    overflow: hidden;
968    border: 1px solid #dfe2e8;
969    border-radius: 11px;
970    background: #fff;
971}
972
973.ps-premium-quote .ps-upload-preview__media {
974    display: grid;
975    place-items: center;
976    min-width: 0;
977    overflow: hidden;
978    background: #f2f4f7;
979}
980
981.ps-premium-quote .ps-upload-preview__media img {
982    display: block;
983    width: 100%;
984    height: 100%;
985    min-height: 76px;
986    object-fit: cover;
987}
988
989.ps-premium-quote .ps-upload-preview__type {
990    color: #7b2d69;
991    font-size: 12px;
992    font-weight: 820;
993    letter-spacing: .06em;
994}
995
996.ps-premium-quote .ps-upload-preview__body {
997    display: flex;
998    min-width: 0;
999    flex-direction: column;
1000    justify-content: center;
1001    gap: 3px;
1002    padding: 9px;
1003}
1004
1005.ps-premium-quote .ps-upload-preview__body strong,
1006.ps-premium-quote .ps-upload-preview__body span {
1007    display: block;
1008    min-width: 0;
1009    overflow: hidden;
1010    color: #343944;
1011    font-size: 9px;
1012    line-height: 1.25;
1013    text-overflow: ellipsis;
1014    white-space: nowrap;
1015}
1016
1017.ps-premium-quote .ps-upload-preview__body strong {
1018    font-size: 10px;
1019    font-weight: 760;
1020}
1021
1022.ps-premium-quote .ps-upload-preview__state {
1023    color: #24805b !important;
1024    font-weight: 730;
1025}
1026
1027.ps-premium-quote .ps-upload-preview__remove {
1028    align-self: start;
1029    min-width: 30px;
1030    min-height: 44px;
1031    padding: 0 !important;
1032    border: 0;
1033    background: transparent;
1034    color: #747b87;
1035    font-size: 20px;
1036    line-height: 1;
1037    cursor: pointer;
1038}
1039
1040.ps-premium-quote .ps-upload-preview__remove:hover,
1041.ps-premium-quote .ps-upload-preview__remove:focus-visible {
1042    color: var(--ps-v5-primary);
1043}
1044
1045.ps-premium-quote .ps-upload-preview__remove:disabled {
1046    cursor: wait;
1047    opacity: .35;
1048}
1049
1050@keyframes ps-upload-shimmer {
1051    to { background-position-x: -220%; }
1052}
1053
1054.ps-premium-quote .ps-quote-continue,
1055.ps-premium-quote .ps-submit-group .btn {
1056    width: 100%;
1057    min-height: 50px;
1058    margin-top: 15px;
1059    padding: 12px 18px !important;
1060    border: 1px solid var(--ps-v5-text) !important;
1061    border-radius: 11px;
1062    background: var(--ps-v5-text) !important;
1063    color: #fff !important;
1064    font-size: 14px;
1065    font-weight: 820;
1066    text-transform: none;
1067}
1068
1069.ps-premium-quote .ps-quote-summary {
1070    display: flex;
1071    align-items: center;
1072    justify-content: space-between;
1073    gap: 12px;
1074    margin: 14px 0 18px;
1075    padding: 11px 12px;
1076    border-radius: 10px;
1077    background: #f3f4f7;
1078    color: #454b58;
1079    font-size: 12px;
1080}
1081
1082.ps-premium-quote .ps-quote-summary p {
1083    min-width: 0;
1084    margin: 0 !important;
1085    color: #454b58 !important;
1086    font-size: 12px !important;
1087    line-height: 1.35 !important;
1088}
1089
1090.ps-premium-quote .ps-quote-summary strong,
1091.ps-premium-quote .ps-quote-summary span {
1092    display: block;
1093    color: #454b58 !important;
1094    font-size: inherit !important;
1095    line-height: inherit !important;
1096}
1097
1098.ps-premium-quote .ps-quote-summary span {
1099    margin-top: 3px;
1100    overflow: hidden;
1101    text-overflow: ellipsis;
1102    white-space: nowrap;
1103}
1104
1105.ps-premium-quote .ps-quote-summary button,
1106.ps-premium-quote .ps-quote-back {
1107    min-width: 44px;
1108    min-height: 44px;
1109    padding: 6px 9px !important;
1110    border: 0;
1111    background: transparent;
1112    color: #a90663;
1113    font-size: 12px;
1114    font-weight: 750;
1115}
1116
1117.ps-premium-quote .ps-quote-contact-grid {
1118    display: grid;
1119    grid-template-columns: repeat(2, minmax(0, 1fr));
1120    gap: 14px;
1121}
1122
1123.ps-premium-quote .ps-quote-contact-grid > :last-child:nth-child(odd) {
1124    grid-column: 1 / -1;
1125    width: calc(50% - 7px);
1126}
1127
1128.ps-premium-quote .ps-quote-contact-grid--more > :last-child:nth-child(odd) {
1129    grid-column: auto;
1130    width: auto;
1131}
1132
1133.ps-premium-quote .ps-locality-field {
1134    grid-column: 1 / -1 !important;
1135    width: 100% !important;
1136}
1137
1138.ps-premium-quote .ps-locality-control {
1139    position: relative;
1140}
1141
1142.ps-premium-quote #ps-quote-locality-help {
1143    display: block;
1144    margin: 5px 2px 0;
1145    color: #8b909a;
1146    font-size: 10px;
1147    line-height: 1.3;
1148}
1149
1150.ps-premium-quote .ps-locality-options {
1151    position: absolute;
1152    z-index: 20;
1153    top: calc(100% + 5px);
1154    right: 0;
1155    left: 0;
1156    max-height: 212px;
1157    overflow-y: auto;
1158    border: 1px solid #d8dce4;
1159    border-radius: 11px;
1160    background: #fff;
1161    box-shadow: 0 16px 34px rgba(20, 23, 40, .15);
1162}
1163
1164.ps-premium-quote .ps-locality-options[hidden] {
1165    display: none;
1166}
1167
1168.ps-premium-quote .ps-locality-option {
1169    min-height: 44px;
1170    padding: 12px 14px;
1171    border-bottom: 1px solid #edf0f4;
1172    color: #343944;
1173    font-size: 12px;
1174    font-weight: 650;
1175    line-height: 1.35;
1176    cursor: pointer;
1177}
1178
1179.ps-premium-quote .ps-locality-option:last-child {
1180    border-bottom: 0;
1181}
1182
1183.ps-premium-quote .ps-locality-option:hover,
1184.ps-premium-quote .ps-locality-option[aria-selected="true"] {
1185    background: #fff2f9;
1186    color: #930058;
1187}
1188
1189.ps-premium-quote .ps-quote-step-actions {
1190    display: grid;
1191    grid-template-columns: auto minmax(0, 1fr);
1192    align-items: end;
1193    gap: 12px;
1194    margin-top: 15px;
1195}
1196
1197.ps-premium-quote .ps-quote-form.is-enhanced.is-step-1 .ps-quote-step-actions {
1198    position: absolute;
1199    top: 0;
1200    left: -10000px;
1201    width: 320px;
1202    opacity: 0;
1203    pointer-events: none;
1204}
1205
1206.ps-premium-quote .ps-submit-group .btn {
1207    margin-top: 0;
1208}
1209
1210.ps-premium-quote .ps-quote-form:not(.is-enhanced) .ps-quote-continue,
1211.ps-premium-quote .ps-quote-form:not(.is-enhanced) .ps-quote-back,
1212.ps-premium-quote .ps-quote-form:not(.is-enhanced) [data-ps-quote-edit],
1213.ps-premium-quote .ps-quote-form:not(.is-enhanced) .ps-quote-summary {
1214    display: none;
1215}
1216
1217.ps-premium-quote #addFile:empty {
1218    display: none;
1219}
1220
1221.ps-premium-quote #addFile:not(:empty) {
1222    display: grid;
1223    gap: 8px;
1224}
1225
1226.ps-premium-quote .ps-submit-group .btn,
1227.ps-premium-quote .ps-submit-group .btn.btn-primary {
1228    width: 100%;
1229    min-height: 50px;
1230    margin: 0;
1231    padding: 12px 18px;
1232    border: 1px solid var(--ps-v5-text) !important;
1233    border-radius: 11px;
1234    background: var(--ps-v5-text) !important;
1235    box-shadow: 0 10px 24px rgba(14, 18, 38, .13);
1236    color: #fff !important;
1237    font-size: 14px;
1238    font-weight: 820;
1239    letter-spacing: .02em;
1240    text-transform: none;
1241}
1242
1243.ps-premium-quote .ps-submit-group .btn:hover,
1244.ps-premium-quote .ps-submit-group .btn:focus-visible {
1245    border-color: #090a16 !important;
1246    background: #090a16 !important;
1247    box-shadow: 0 13px 28px rgba(14, 18, 38, .2);
1248    opacity: 1;
1249    transform: translateY(-1px);
1250}
1251
1252.ps-premium-quote .ps-quote-assurance {
1253    margin: 8px 0 0 !important;
1254    color: #626875 !important;
1255    font-size: 10px !important;
1256    font-weight: 600 !important;
1257    line-height: 1.35;
1258    text-align: center;
1259}
1260
1261.ps-premium-quote form > .form-group:last-child::after {
1262    content: none !important;
1263    display: none !important;
1264}
1265
1266.ps-v5-promises {
1267    padding: 26px 0;
1268    border-top: 1px solid var(--ps-v5-border);
1269    border-bottom: 1px solid var(--ps-v5-border);
1270    background: #fff;
1271}
1272
1273.ps-v5-promises__grid {
1274    display: grid;
1275    grid-template-columns: repeat(5, minmax(0, 1fr));
1276    margin: 0;
1277    padding: 0;
1278    list-style: none;
1279}
1280
1281.ps-v5-promise {
1282    display: grid;
1283    min-width: 0;
1284    gap: 9px;
1285    padding: 8px 24px;
1286    border-left: 1px solid var(--ps-v5-border);
1287}
1288
1289.ps-v5-promise:first-child {
1290    border-left: 0;
1291}
1292
1293.ps-v5-promise span {
1294    color: var(--ps-v5-primary);
1295    font-size: 10px;
1296    font-weight: 850;
1297    line-height: 1;
1298    letter-spacing: .14em;
1299}
1300
1301.ps-v5-promise strong {
1302    color: #101010;
1303    font-size: 13px;
1304    font-weight: 760;
1305    line-height: 1.35;
1306}
1307
1308.ps-v5-delivery {
1309    padding: 96px 0;
1310    border-bottom: 1px solid var(--ps-v5-border);
1311    background: var(--ps-v5-soft);
1312}
1313
1314.ps-v5-delivery__intro,
1315.ps-v5-capabilities__heading {
1316    display: grid;
1317    grid-template-columns: minmax(0, 1.18fr) minmax(320px, .82fr);
1318    align-items: end;
1319    gap: clamp(42px, 7vw, 96px);
1320}
1321
1322.ps-v5-delivery__intro h2,
1323.ps-v5-capabilities__heading h2,
1324.ps-v5-closing h2 {
1325    max-width: 760px;
1326    margin: 0 !important;
1327    color: var(--ps-v5-text) !important;
1328    font-size: var(--ps-v5-type-editorial-h2) !important;
1329    font-weight: var(--ps-v5-type-editorial-weight) !important;
1330    line-height: var(--ps-v5-type-editorial-leading) !important;
1331    letter-spacing: var(--ps-v5-type-editorial-tracking) !important;
1332}
1333
1334.ps-v5-delivery__intro > div:last-child > p,
1335.ps-v5-capabilities__heading > p,
1336.ps-v5-closing__inner > div:first-child > p:last-child {
1337    margin: 0 !important;
1338    color: var(--ps-v5-muted) !important;
1339    font-size: 16px !important;
1340    line-height: 1.65 !important;
1341}
1342
1343.ps-v5-delivery__intro > div:last-child > a {
1344    display: inline-flex;
1345    margin-top: 20px;
1346    gap: 8px;
1347    color: var(--ps-v5-text) !important;
1348    font-size: 14px;
1349    font-weight: 780;
1350    text-decoration: none;
1351}
1352
1353.ps-v5-delivery__grid {
1354    display: grid;
1355    grid-template-columns: repeat(3, minmax(0, 1fr));
1356    margin-top: 54px;
1357    overflow: hidden;
1358    border: 1px solid var(--ps-v5-border);
1359    border-radius: 18px;
1360    background: #fff;
1361}
1362
1363.ps-v5-delivery__grid article {
1364    min-height: 250px;
1365    padding: clamp(28px, 3vw, 42px);
1366    border-right: 1px solid var(--ps-v5-border);
1367}
1368
1369.ps-v5-delivery__grid article:last-child {
1370    border-right: 0;
1371}
1372
1373.ps-v5-delivery__number {
1374    margin: 0 0 34px !important;
1375    color: var(--ps-v5-primary) !important;
1376    font-size: 11px !important;
1377    font-weight: 820 !important;
1378    letter-spacing: .14em;
1379}
1380
1381.ps-v5-delivery__grid h3,
1382.ps-v5-capability-card h3 {
1383    margin: 0 !important;
1384    color: var(--ps-v5-text) !important;
1385    font-size: 24px !important;
1386    font-weight: 800 !important;
1387    line-height: 1.15 !important;
1388    letter-spacing: -.025em;
1389}
1390
1391.ps-v5-delivery__grid article > p:last-child,
1392.ps-v5-capability-card__body > p:not(.ps-v5-capability-card__eyebrow) {
1393    margin: 14px 0 0 !important;
1394    color: var(--ps-v5-muted) !important;
1395    font-size: 14px !important;
1396    line-height: 1.65 !important;
1397}
1398
1399.ps-v5-capabilities {
1400    padding: 100px 0;
1401    border-bottom: 1px solid var(--ps-v5-border);
1402    background: #fff;
1403}
1404
1405.ps-v5-capabilities__heading {
1406    align-items: end;
1407}
1408
1409.ps-v5-capabilities__grid {
1410    display: grid;
1411    grid-template-columns: repeat(2, minmax(0, 1fr));
1412    gap: 24px;
1413    margin-top: 56px;
1414}
1415
1416.ps-v5-capability-card {
1417    overflow: hidden;
1418    border: 1px solid var(--ps-v5-border);
1419    border-radius: 18px;
1420    background: #fff;
1421    box-shadow: 0 14px 38px rgba(20, 23, 40, .065);
1422}
1423
1424.ps-v5-capability-card:last-child {
1425    display: grid;
1426    grid-column: 1 / -1;
1427    grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr);
1428}
1429
1430.ps-v5-capability-card__image {
1431    display: block;
1432    aspect-ratio: 16 / 9;
1433    overflow: hidden;
1434    background: #eef0f4;
1435}
1436
1437.ps-v5-capability-card:last-child .ps-v5-capability-card__image {
1438    aspect-ratio: 16 / 8;
1439}
1440
1441.ps-v5-capability-card__image img {
1442    display: block;
1443    width: 100%;
1444    height: 100%;
1445    object-fit: cover;
1446    transition: transform .45s ease;
1447}
1448
1449.ps-v5-capability-card:hover .ps-v5-capability-card__image img {
1450    transform: scale(1.025);
1451}
1452
1453.ps-v5-capability-card__body {
1454    padding: clamp(25px, 3vw, 36px);
1455}
1456
1457.ps-v5-capability-card__eyebrow {
1458    margin: 0 0 9px !important;
1459    color: var(--ps-v5-primary) !important;
1460    font-size: 10px !important;
1461    font-weight: 820 !important;
1462    letter-spacing: .13em;
1463    text-transform: uppercase;
1464}
1465
1466.ps-v5-capability-card__body p a {
1467    color: inherit !important;
1468    text-decoration-color: #aeb3bd;
1469    text-underline-offset: 3px;
1470}
1471
1472.ps-v5-capability-card__link {
1473    display: inline-flex;
1474    gap: 8px;
1475    margin-top: 22px;
1476    color: var(--ps-v5-text) !important;
1477    font-size: 13px;
1478    font-weight: 780;
1479    text-decoration: none !important;
1480}
1481
1482.ps-v5-range {
1483    padding: 96px 0 104px;
1484    border-bottom: 1px solid var(--ps-v5-border);
1485    background: #fff;
1486}
1487
1488.ps-v5-range__heading {
1489    max-width: 760px;
1490}
1491
1492.ps-v5-range__heading h2,
1493.ps-v5-cutting-feature__body h2 {
1494    margin: 0 !important;
1495    color: var(--ps-v5-text) !important;
1496    font-size: var(--ps-v5-type-editorial-h2) !important;
1497    font-weight: var(--ps-v5-type-editorial-weight) !important;
1498    line-height: var(--ps-v5-type-editorial-leading) !important;
1499    letter-spacing: var(--ps-v5-type-editorial-tracking);
1500}
1501
1502.ps-v5-range__heading > div > p:last-child {
1503    max-width: 720px;
1504    margin: 22px 0 0 !important;
1505    color: var(--ps-v5-muted) !important;
1506    font-size: 17px !important;
1507    line-height: 1.65 !important;
1508}
1509
1510.ps-v5-range__grid {
1511    display: grid;
1512    grid-template-columns: repeat(3, minmax(0, 1fr));
1513    gap: 20px;
1514    margin-top: 54px;
1515}
1516
1517.ps-v5-range-card {
1518    display: block;
1519    overflow: hidden;
1520    border: 1px solid var(--ps-v5-border);
1521    border-radius: 16px;
1522    background: #fff;
1523    color: var(--ps-v5-text) !important;
1524    text-decoration: none !important;
1525    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
1526}
1527
1528.ps-v5-range-card:hover,
1529.ps-v5-range-card:focus-visible {
1530    border-color: #ccd0d8;
1531    box-shadow: 0 18px 42px rgba(20, 23, 40, .1);
1532    transform: translateY(-3px);
1533}
1534
1535.ps-v5-range-card__image {
1536    display: block;
1537    aspect-ratio: 21 / 10;
1538    overflow: hidden;
1539    background: #eef0f4;
1540}
1541
1542.ps-v5-range-card__image img {
1543    display: block;
1544    width: 100%;
1545    height: 100%;
1546    object-fit: cover;
1547    transition: transform .42s ease;
1548}
1549
1550.ps-v5-range-card:hover .ps-v5-range-card__image img,
1551.ps-v5-range-card:focus-visible .ps-v5-range-card__image img {
1552    transform: scale(1.025);
1553}
1554
1555.ps-v5-range-card__body {
1556    display: grid;
1557    gap: 10px;
1558    padding: 22px 22px 24px;
1559}
1560
1561.ps-v5-range-card__body > strong {
1562    color: var(--ps-v5-text);
1563    font-size: 18px;
1564    font-weight: 790;
1565    line-height: 1.25;
1566}
1567
1568.ps-v5-range-card__body > span:not(.ps-v5-range-card__link) {
1569    color: var(--ps-v5-muted);
1570    font-size: 13px;
1571    line-height: 1.55;
1572}
1573
1574.ps-v5-range-card__link {
1575    display: inline-flex;
1576    align-items: center;
1577    gap: 7px;
1578    margin-top: 4px;
1579    color: var(--ps-v5-cyan-ink);
1580    font-size: 12px;
1581    font-weight: 780;
1582}
1583
1584.ps-v5-cutting-feature {
1585    padding: 88px 0;
1586    border-bottom: 1px solid var(--ps-v5-border);
1587    background: var(--ps-v5-soft);
1588}
1589
1590.ps-v5-cutting-feature__card {
1591    display: grid;
1592    grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr);
1593    overflow: hidden;
1594    border: 1px solid var(--ps-v5-border);
1595    border-radius: 20px;
1596    background: #fff;
1597    box-shadow: 0 18px 46px rgba(20, 23, 40, .07);
1598}
1599
1600.ps-v5-cutting-feature__image {
1601    display: block;
1602    min-height: 460px;
1603    overflow: hidden;
1604    background: #111;
1605}
1606
1607.ps-v5-cutting-feature__image img {
1608    width: 100%;
1609    height: 100%;
1610    object-fit: cover;
1611}
1612
1613.ps-v5-cutting-feature__body {
1614    display: flex;
1615    flex-direction: column;
1616    justify-content: center;
1617    padding: clamp(38px, 5vw, 72px);
1618}
1619
1620.ps-v5-cutting-feature__body h2 {
1621    font-size: var(--ps-v5-type-editorial-h2) !important;
1622}
1623
1624.ps-v5-cutting-feature__body > p:not(.ps-v5-eyebrow) {
1625    margin: 22px 0 0 !important;
1626    color: var(--ps-v5-muted) !important;
1627    font-size: 16px !important;
1628    line-height: 1.65 !important;
1629}
1630
1631.ps-v5-cutting-feature__actions {
1632    display: flex;
1633    flex-wrap: wrap;
1634    gap: 14px 24px;
1635    margin-top: 30px;
1636}
1637
1638.ps-v5-cutting-feature__actions a {
1639    color: var(--ps-v5-text) !important;
1640    font-size: 13px;
1641    font-weight: 780;
1642    text-decoration: none !important;
1643}
1644
1645.ps-v5-cutting-feature__actions a:hover,
1646.ps-v5-cutting-feature__actions a:focus-visible {
1647    color: var(--ps-v5-cyan-ink) !important;
1648}
1649
1650/* Retain the broad product-category grid for internal linking, but present it
1651   as a coherent continuation of the V5 homepage. */
1652body.ps-v5-homepage-enabled main .service-section {
1653    padding: 88px 0 26px !important;
1654    background: var(--ps-v5-soft) !important;
1655}
1656
1657body.ps-v5-homepage-enabled main .service-section .title {
1658    color: var(--ps-v5-text) !important;
1659    font-size: var(--ps-v5-type-editorial-h2) !important;
1660    font-weight: var(--ps-v5-type-editorial-weight) !important;
1661    line-height: var(--ps-v5-type-editorial-leading) !important;
1662    letter-spacing: var(--ps-v5-type-editorial-tracking);
1663}
1664
1665body.ps-v5-homepage-enabled main .service-section p {
1666    color: var(--ps-v5-muted) !important;
1667    line-height: 1.6;
1668}
1669
1670body.ps-v5-homepage-enabled main .service-section .prt-btn {
1671    color: var(--ps-v5-text) !important;
1672    font-weight: 760;
1673}
1674
1675body.ps-v5-homepage-enabled main .padding_top_zero-section {
1676    margin-top: 0 !important;
1677    padding: 20px 0 90px !important;
1678    background: var(--ps-v5-soft);
1679}
1680
1681body.ps-v5-homepage-enabled main .padding_top_zero-section .prt-col-bgcolor-yes {
1682    background: transparent !important;
1683}
1684
1685body.ps-v5-homepage-enabled main .padding_top_zero-section .card {
1686    overflow: hidden;
1687    border: 1px solid var(--ps-v5-border);
1688    border-radius: 14px;
1689    background: #fff;
1690    box-shadow: 0 10px 28px rgba(20, 23, 40, .06) !important;
1691}
1692
1693body.ps-v5-homepage-enabled main .padding_top_zero-section .card-img-top {
1694    width: 100%;
1695    aspect-ratio: 4 / 3;
1696    object-fit: cover;
1697}
1698
1699body.ps-v5-homepage-enabled main .padding_top_zero-section .card-title {
1700    color: var(--ps-v5-text) !important;
1701    font-weight: 760 !important;
1702}
1703
1704.ps-v5-closing {
1705    padding: 84px 0;
1706    border-top: 1px solid var(--ps-v5-border);
1707    border-bottom: 1px solid var(--ps-v5-border);
1708    background: #fff;
1709}
1710
1711.ps-v5-closing .ps-v5-eyebrow {
1712    color: var(--ps-v5-primary) !important;
1713}
1714
1715.ps-v5-closing__inner {
1716    display: grid;
1717    grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr);
1718    align-items: center;
1719    gap: clamp(42px, 7vw, 96px);
1720}
1721
1722.ps-v5-closing h2 {
1723    color: #101010 !important;
1724}
1725
1726.ps-v5-closing__inner > div:first-child > p:last-child {
1727    max-width: 720px;
1728    margin-top: 20px !important;
1729    color: #687080 !important;
1730}
1731
1732.ps-v5-closing__actions {
1733    display: grid;
1734    gap: 12px;
1735}
1736
1737.ps-v5-closing__actions p {
1738    margin: 5px 0 0 !important;
1739    color: #687080 !important;
1740    font-size: 11px !important;
1741    line-height: 1.4;
1742    text-align: center;
1743}
1744
1745.ps-v5-closing .ps-v5-button--primary {
1746    background: var(--ps-v5-cyan);
1747    box-shadow: 0 12px 26px rgba(0, 174, 239, .2);
1748    color: #050505 !important;
1749}
1750
1751.ps-v5-closing .ps-v5-button--primary:hover,
1752.ps-v5-closing .ps-v5-button--primary:focus-visible {
1753    background: #009bd5;
1754    box-shadow: 0 15px 30px rgba(0, 174, 239, .28);
1755}
1756
1757.ps-v5-closing .ps-v5-button--secondary {
1758    border-color: #101010;
1759    background: #fff;
1760    color: #101010 !important;
1761}
1762
1763.ps-v5-closing .ps-v5-button--secondary:hover,
1764.ps-v5-closing .ps-v5-button--secondary:focus-visible {
1765    background: #f5f5f3;
1766    box-shadow: none;
1767}
1768
1769.ps-v5-industries {
1770    padding: 96px 0 104px;
1771    border-bottom: 1px solid var(--ps-v5-border);
1772    background: #fbfbfd;
1773}
1774
1775.ps-v5-industries__heading,
1776.ps-v5-proof__heading,
1777.ps-v5-reviews__heading,
1778.ps-v5-videos__heading {
1779    display: grid;
1780    grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
1781    align-items: end;
1782    gap: clamp(32px, 6vw, 88px);
1783}
1784
1785.ps-v5-industries__heading h2,
1786.ps-v5-proof__heading h2,
1787.ps-v5-reviews__heading h2,
1788.ps-v5-videos__heading h2 {
1789    margin: 0 !important;
1790    color: var(--ps-v5-text) !important;
1791    font-size: var(--ps-v5-type-editorial-h2) !important;
1792    font-weight: var(--ps-v5-type-editorial-weight) !important;
1793    line-height: var(--ps-v5-type-editorial-leading) !important;
1794    letter-spacing: var(--ps-v5-type-editorial-tracking);
1795}
1796
1797.ps-v5-industries__heading > p,
1798.ps-v5-proof__heading > p,
1799.ps-v5-videos__heading > div > p:last-child {
1800    margin: 0 !important;
1801    color: var(--ps-v5-muted) !important;
1802    font-size: 16px !important;
1803    line-height: 1.7 !important;
1804}
1805
1806.ps-v5-industries__grid {
1807    display: grid;
1808    grid-template-columns: repeat(4, minmax(0, 1fr));
1809    gap: 14px;
1810    margin-top: 48px;
1811}
1812
1813.ps-v5-industry-card {
1814    display: flex;
1815    min-height: 238px;
1816    flex-direction: column;
1817    padding: 25px;
1818    border: 1px solid var(--ps-v5-border);
1819    border-radius: 18px;
1820    background: #fff;
1821    color: var(--ps-v5-text) !important;
1822    text-decoration: none !important;
1823    box-shadow: 0 12px 28px rgba(25, 26, 47, .035);
1824    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
1825}
1826
1827.ps-v5-industry-card:hover,
1828.ps-v5-industry-card:focus-visible {
1829    transform: translateY(-4px);
1830    border-color: color-mix(in srgb, var(--ps-industry-accent) 45%, #dfe2e8);
1831    box-shadow: 0 20px 38px rgba(25, 26, 47, .09);
1832}
1833
1834.ps-v5-industry-card__icon {
1835    display: inline-flex;
1836    width: 54px;
1837    height: 54px;
1838    align-items: center;
1839    justify-content: center;
1840    margin-bottom: 21px;
1841    border-radius: 14px;
1842    background: var(--ps-industry-tint);
1843    color: var(--ps-industry-accent);
1844}
1845
1846.ps-v5-industry-card__title {
1847    color: var(--ps-v5-text);
1848    font-size: 18px;
1849    font-weight: 780;
1850    line-height: 1.2;
1851}
1852
1853.ps-v5-industry-card__copy {
1854    margin-top: 10px;
1855    color: var(--ps-v5-muted);
1856    font-size: 13px;
1857    line-height: 1.55;
1858}
1859
1860.ps-v5-industry-card__link {
1861    margin-top: auto;
1862    padding-top: 18px;
1863    color: var(--ps-v5-text);
1864    font-size: 12px;
1865    font-weight: 750;
1866}
1867
1868.ps-v5-proof {
1869    border-bottom: 1px solid var(--ps-v5-border);
1870    background: #fff;
1871}
1872
1873.ps-v5-proof > .ps-v5-shell:first-child {
1874    padding-top: 104px;
1875}
1876
1877.ps-v5-proof__logos {
1878    display: grid;
1879    grid-template-columns: repeat(4, minmax(0, 1fr));
1880    gap: 12px;
1881    margin-top: 46px;
1882}
1883
1884.ps-v5-proof__logos .ps-trusted-brands__card {
1885    display: flex;
1886    min-height: 104px;
1887    align-items: center;
1888    justify-content: center;
1889    padding: 18px;
1890    border: 1px solid var(--ps-v5-border);
1891    border-radius: 14px;
1892    background: #fff;
1893}
1894
1895.ps-v5-proof__logos .ps-trusted-brands__logo {
1896    width: auto !important;
1897    object-fit: contain;
1898}
1899
1900.ps-v5-proof__stats {
1901    margin-top: 54px;
1902    padding: 48px 0;
1903    background: #050505 !important;
1904}
1905
1906.ps-v5-proof__stats .ps-trusted-stats__inner {
1907    padding: 0 !important;
1908}
1909
1910.ps-v5-proof__stats .ps-trusted-stats__grid {
1911    display: grid;
1912    grid-template-columns: repeat(3, minmax(0, 1fr));
1913    gap: 38px;
1914}
1915
1916.ps-v5-proof__stats .ps-trusted-stats__item {
1917    padding: 0 !important;
1918    border: 0 !important;
1919    text-align: center !important;
1920}
1921
1922.ps-v5-proof__stats .ps-trusted-stats__value {
1923    margin: 0 !important;
1924    color: #ff70c4 !important;
1925    font-size: var(--ps-v5-type-numeric-proof) !important;
1926    font-weight: 800 !important;
1927    line-height: 1 !important;
1928}
1929
1930.ps-v5-proof__stats .ps-trusted-stats__label {
1931    margin: 11px 0 0 !important;
1932    color: #fff !important;
1933    font-size: 13px !important;
1934    font-weight: 760 !important;
1935    letter-spacing: .11em;
1936    text-transform: uppercase;
1937}
1938
1939.ps-v5-proof__stats .ps-trusted-stats__copy {
1940    max-width: 340px;
1941    margin: 9px auto 0 !important;
1942    color: rgba(255, 255, 255, .78) !important;
1943    font-size: 15px !important;
1944    line-height: 1.6 !important;
1945}
1946
1947/* The legacy homepage global `p, span { font-size: 16px !important }`
1948   (main-home-no-font.css) beats inheritance on the CountUp <span>, flattening
1949   the stat digits to 16px. Higher-specificity inherit restores the clamp
1950   size from the <p> above. */
1951.ps-v5-proof__stats .ps-trusted-stats__value .ps-count-up {
1952    font-size: inherit !important;
1953}
1954
1955.ps-v5-reviews {
1956    padding-top: 96px;
1957    padding-bottom: 104px;
1958}
1959
1960.ps-v5-reviews__heading {
1961    align-items: center;
1962}
1963
1964.ps-v5-reviews__summary {
1965    display: grid;
1966    justify-items: start;
1967    gap: 6px;
1968}
1969
1970.ps-v5-reviews__summary > span {
1971    color: #d97706;
1972    font-size: 22px;
1973    letter-spacing: .08em;
1974}
1975
1976.ps-v5-reviews__summary strong {
1977    color: var(--ps-v5-text);
1978    font-size: 18px;
1979}
1980
1981.ps-v5-reviews__summary a {
1982    color: var(--ps-v5-primary) !important;
1983    font-size: 13px;
1984    font-weight: 750;
1985    text-decoration: none !important;
1986}
1987
1988.ps-v5-reviews__grid {
1989    display: grid;
1990    grid-template-columns: repeat(3, minmax(0, 1fr));
1991    gap: 16px;
1992    margin-top: 44px;
1993}
1994
1995.ps-v5-review {
1996    display: flex;
1997    min-height: 320px;
1998    flex-direction: column;
1999    margin: 0;
2000    padding: 30px;
2001    border: 1px solid var(--ps-v5-border);
2002    border-radius: 18px;
2003    background: var(--ps-v5-soft);
2004}
2005
2006.ps-v5-review__stars {
2007    color: #d97706;
2008    font-size: 18px;
2009    letter-spacing: .08em;
2010}
2011
2012.ps-v5-review blockquote {
2013    flex: 1;
2014    margin: 22px 0 28px !important;
2015    color: var(--ps-v5-text) !important;
2016    font-size: 16px !important;
2017    font-weight: 530;
2018    line-height: 1.65 !important;
2019}
2020
2021.ps-v5-review figcaption {
2022    display: flex;
2023    align-items: center;
2024    justify-content: space-between;
2025    gap: 16px;
2026    padding-top: 18px;
2027    border-top: 1px solid var(--ps-v5-border);
2028    color: var(--ps-v5-text);
2029}
2030
2031.ps-v5-review figcaption strong {
2032    font-size: 13px;
2033}
2034
2035.ps-v5-review figcaption span {
2036    color: var(--ps-v5-muted);
2037    font-size: 11px;
2038}
2039
2040.ps-v5-videos {
2041    padding: 104px 0;
2042    border-bottom: 1px solid var(--ps-v5-border);
2043    background: #fbfbfd;
2044}
2045
2046.ps-v5-videos__heading {
2047    align-items: center;
2048}
2049
2050.ps-v5-videos__heading > div > p:last-child {
2051    max-width: 650px;
2052    margin-top: 18px !important;
2053}
2054
2055.ps-v5-videos__heading > a {
2056    display: inline-flex;
2057    min-height: 50px;
2058    align-items: center;
2059    justify-content: center;
2060    justify-self: start;
2061    padding: 0 22px;
2062    border-radius: 12px;
2063    background: var(--ps-v5-text);
2064    color: #fff !important;
2065    font-size: 13px;
2066    font-weight: 750;
2067    text-decoration: none !important;
2068}
2069
2070.ps-v5-videos__grid {
2071    display: grid;
2072    grid-template-columns: repeat(3, minmax(0, 1fr));
2073    gap: 16px;
2074    margin-top: 46px;
2075}
2076
2077.ps-v5-video-card {
2078    position: relative;
2079    overflow: hidden;
2080    aspect-ratio: 16 / 9;
2081    margin: 0;
2082    border: 1px solid var(--ps-v5-border);
2083    border-radius: 18px;
2084    background: #111;
2085}
2086
2087.ps-v5-video-card__button,
2088.ps-v5-video-card__iframe {
2089    position: absolute;
2090    inset: 0;
2091    width: 100%;
2092    height: 100%;
2093    border: 0;
2094}
2095
2096.ps-v5-video-card__button {
2097    overflow: hidden;
2098    padding: 0;
2099    cursor: pointer;
2100    background: #111;
2101    text-align: left;
2102}
2103
2104.ps-v5-video-card__button img {
2105    width: 100%;
2106    height: 100%;
2107    object-fit: cover;
2108    transform: scale(1.01);
2109    transition: transform .45s ease;
2110}
2111
2112.ps-v5-video-card__button:hover img,
2113.ps-v5-video-card__button:focus-visible img {
2114    transform: scale(1.055);
2115}
2116
2117.ps-v5-video-card__shade {
2118    position: absolute;
2119    inset: 0;
2120    background: linear-gradient(180deg, transparent 30%, rgba(7, 8, 20, .82) 100%);
2121}
2122
2123.ps-v5-video-card__play {
2124    position: absolute;
2125    top: 50%;
2126    left: 50%;
2127    display: flex;
2128    width: 58px;
2129    height: 58px;
2130    align-items: center;
2131    justify-content: center;
2132    border-radius: 50%;
2133    background: rgba(255, 255, 255, .96);
2134    color: #111;
2135    box-shadow: 0 10px 30px rgba(0, 0, 0, .24);
2136    transform: translate(-50%, -50%);
2137    transition: transform .25s ease;
2138}
2139
2140.ps-v5-video-card__button:hover .ps-v5-video-card__play,
2141.ps-v5-video-card__button:focus-visible .ps-v5-video-card__play {
2142    transform: translate(-50%, -50%) scale(1.08);
2143}
2144
2145.ps-v5-video-card__caption {
2146    position: absolute;
2147    right: 18px;
2148    bottom: 17px;
2149    left: 18px;
2150    display: grid;
2151    gap: 3px;
2152    color: #fff;
2153}
2154
2155.ps-v5-video-card__caption small {
2156    color: rgba(255, 255, 255, .72);
2157    font-size: 10px;
2158    font-weight: 750;
2159    letter-spacing: .13em;
2160    text-transform: uppercase;
2161}
2162
2163.ps-v5-video-card__caption strong {
2164    color: #fff;
2165    font-size: 13px;
2166    line-height: 1.35;
2167}
2168
2169/* Image-led semantic support: meaningful detail remains in the initial HTML
2170   and is progressively disclosed with native, keyboard-accessible controls. */
2171.ps-home-product-index {
2172    margin: 34px 0 0;
2173    border: 1px solid var(--ps-v5-border);
2174    border-radius: 16px;
2175    background: #fff;
2176    overflow: hidden;
2177}
2178
2179.ps-home-product-index > summary,
2180.ps-home-location-detail > summary,
2181.ps-home-process-card details > summary {
2182    cursor: pointer;
2183    list-style: none;
2184}
2185
2186.ps-home-product-index > summary::-webkit-details-marker,
2187.ps-home-location-detail > summary::-webkit-details-marker,
2188.ps-home-process-card details > summary::-webkit-details-marker {
2189    display: none;
2190}
2191
2192.ps-home-product-index > summary {
2193    display: flex;
2194    min-height: 76px;
2195    align-items: center;
2196    justify-content: space-between;
2197    gap: 24px;
2198    padding: 18px 22px;
2199    color: var(--ps-v5-text);
2200}
2201
2202.ps-home-product-index > summary strong,
2203.ps-home-product-index > summary small {
2204    display: block;
2205}
2206
2207.ps-home-product-index > summary strong {
2208    font-size: 17px;
2209    line-height: 1.25;
2210}
2211
2212.ps-home-product-index > summary small {
2213    margin-top: 4px;
2214    color: var(--ps-v5-muted);
2215    font-size: 13px;
2216}
2217
2218.ps-home-product-index > summary > span:last-child {
2219    display: grid;
2220    width: 34px;
2221    height: 34px;
2222    flex: 0 0 34px;
2223    place-items: center;
2224    border-radius: 999px;
2225    background: var(--ps-v5-soft);
2226    color: var(--ps-v5-primary);
2227    font-size: 24px;
2228    transition: transform .2s ease;
2229}
2230
2231.ps-home-product-index[open] > summary > span:last-child,
2232.ps-home-location-detail[open] > summary > span:last-child {
2233    transform: rotate(45deg);
2234}
2235
2236.ps-home-product-index__content {
2237    padding: 0 22px 24px;
2238    border-top: 1px solid var(--ps-v5-border);
2239}
2240
2241.ps-home-product-index__copy {
2242    display: grid;
2243    grid-template-columns: repeat(2, minmax(0, 1fr));
2244    gap: 22px 34px;
2245    padding: 24px 0;
2246}
2247
2248.ps-home-product-index__copy h3 {
2249    margin: 0 0 7px !important;
2250    color: var(--ps-v5-text) !important;
2251    font-size: 16px !important;
2252    font-weight: 800 !important;
2253    line-height: 1.3 !important;
2254}
2255
2256.ps-home-product-index__copy p {
2257    margin: 0 !important;
2258    color: var(--ps-v5-muted) !important;
2259    font-size: 14px !important;
2260    line-height: 1.65 !important;
2261}
2262
2263.ps-home-product-index__links {
2264    display: flex;
2265    flex-wrap: wrap;
2266    gap: 8px;
2267}
2268
2269.ps-home-product-index__links a {
2270    padding: 9px 12px;
2271    border-radius: 999px;
2272    background: var(--ps-v5-soft);
2273    color: #334155 !important;
2274    font-size: 12px;
2275    font-weight: 750;
2276}
2277
2278.ps-home-process,
2279.ps-home-locations {
2280    padding: 96px 0;
2281    border-bottom: 1px solid var(--ps-v5-border);
2282}
2283
2284.ps-home-process {
2285    background: var(--ps-v5-soft);
2286}
2287
2288.ps-home-process__heading,
2289.ps-home-locations__heading {
2290    display: grid;
2291    grid-template-columns: minmax(0, .9fr) minmax(300px, .7fr);
2292    align-items: end;
2293    gap: 70px;
2294}
2295
2296.ps-home-process__heading h2,
2297.ps-home-locations__heading h2 {
2298    max-width: 800px;
2299    margin: 0 !important;
2300    color: var(--ps-v5-text) !important;
2301    font-size: var(--ps-v5-type-editorial-h2) !important;
2302    font-weight: var(--ps-v5-type-editorial-weight) !important;
2303    line-height: var(--ps-v5-type-editorial-leading) !important;
2304    letter-spacing: var(--ps-v5-type-editorial-tracking) !important;
2305}
2306
2307.ps-home-process__heading > p,
2308.ps-home-locations__heading > p {
2309    margin: 0 !important;
2310    color: var(--ps-v5-muted) !important;
2311    font-size: 15px !important;
2312    line-height: 1.7 !important;
2313}
2314
2315.ps-home-process__grid {
2316    display: grid;
2317    grid-template-columns: repeat(3, minmax(0, 1fr));
2318    gap: 20px;
2319    margin-top: 48px;
2320}
2321
2322.ps-home-process-card {
2323    display: flex;
2324    min-width: 0;
2325    flex-direction: column;
2326    border: 1px solid var(--ps-v5-border);
2327    border-radius: 18px;
2328    background: #fff;
2329    overflow: hidden;
2330}
2331
2332.ps-home-process-card__image {
2333    display: block;
2334    height: 280px;
2335    overflow: hidden;
2336}
2337
2338.ps-home-process-card__image img {
2339    width: 100%;
2340    height: 100%;
2341    object-fit: cover;
2342    transition: transform .35s ease;
2343}
2344
2345.ps-home-process-card__image:hover img,
2346.ps-home-process-card__image:focus-visible img {
2347    transform: scale(1.025);
2348}
2349
2350.ps-home-process-card__body {
2351    display: flex;
2352    flex: 1;
2353    flex-direction: column;
2354    padding: 24px;
2355}
2356
2357.ps-home-process-card__step {
2358    margin: 0 0 10px !important;
2359    color: var(--ps-v5-primary) !important;
2360    font-size: 10px !important;
2361    font-weight: 850 !important;
2362    letter-spacing: .13em;
2363    text-transform: uppercase;
2364}
2365
2366.ps-home-process-card h3 {
2367    margin: 0 !important;
2368    color: var(--ps-v5-text) !important;
2369    font-size: 22px !important;
2370    font-weight: 820 !important;
2371    line-height: 1.18 !important;
2372}
2373
2374.ps-home-process-card__body > p:not(.ps-home-process-card__step),
2375.ps-home-process-card details p {
2376    color: var(--ps-v5-muted) !important;
2377    font-size: 14px !important;
2378    line-height: 1.65 !important;
2379}
2380
2381.ps-home-process-card__body > p:not(.ps-home-process-card__step) {
2382    margin: 13px 0 0 !important;
2383}
2384
2385.ps-home-process-card details {
2386    margin-top: 16px;
2387    border-top: 1px solid var(--ps-v5-border);
2388    border-bottom: 1px solid var(--ps-v5-border);
2389}
2390
2391.ps-home-process-card details summary {
2392    display: flex;
2393    min-height: 48px;
2394    align-items: center;
2395    color: #334155;
2396    font-size: 12px;
2397    font-weight: 800;
2398}
2399
2400.ps-home-process-card details summary::after {
2401    content: "+";
2402    margin-left: auto;
2403    color: var(--ps-v5-primary);
2404    font-size: 18px;
2405}
2406
2407.ps-home-process-card details[open] summary::after {
2408    content: "−";
2409}
2410
2411.ps-home-process-card details p {
2412    margin: 0 0 16px !important;
2413}
2414
2415.ps-home-process-card__link {
2416    margin-top: auto;
2417    padding-top: 18px;
2418    color: var(--ps-v5-cyan-ink) !important;
2419    font-size: 13px;
2420    font-weight: 800;
2421}
2422
2423.ps-home-locations {
2424    background: #fff;
2425}
2426
2427.ps-home-locations__layout {
2428    display: grid;
2429    grid-template-columns: minmax(0, 1.12fr) minmax(330px, .88fr);
2430    align-items: stretch;
2431    gap: 24px;
2432    margin-top: 48px;
2433}
2434
2435.ps-home-locations__mosaic {
2436    display: grid;
2437    min-height: 570px;
2438    grid-template-columns: 1.15fr .85fr;
2439    grid-template-rows: repeat(2, minmax(0, 1fr));
2440    gap: 12px;
2441}
2442
2443.ps-home-location-image {
2444    position: relative;
2445    display: block;
2446    min-width: 0;
2447    border-radius: 16px;
2448    background: #111827;
2449    overflow: hidden;
2450}
2451
2452.ps-home-location-image--feature {
2453    grid-row: 1 / span 2;
2454}
2455
2456.ps-home-location-image img {
2457    width: 100%;
2458    height: 100%;
2459    object-fit: cover;
2460    opacity: .9;
2461    transition: transform .35s ease, opacity .35s ease;
2462}
2463
2464.ps-home-location-image:hover img,
2465.ps-home-location-image:focus-visible img {
2466    opacity: 1;
2467    transform: scale(1.025);
2468}
2469
2470.ps-home-location-image > span {
2471    position: absolute;
2472    right: 0;
2473    bottom: 0;
2474    left: 0;
2475    display: block;
2476    padding: 56px 18px 18px;
2477    background: linear-gradient(transparent, rgba(5, 8, 20, .88));
2478    color: #fff;
2479}
2480
2481.ps-home-location-image small,
2482.ps-home-location-image strong {
2483    display: block;
2484}
2485
2486.ps-home-location-image small {
2487    margin-bottom: 4px;
2488    color: #6dd6ff;
2489    font-size: 10px;
2490    font-weight: 850;
2491    letter-spacing: .12em;
2492    text-transform: uppercase;
2493}
2494
2495.ps-home-location-image strong {
2496    font-size: 16px;
2497    line-height: 1.25;
2498}
2499
2500.ps-home-locations__details {
2501    border: 1px solid var(--ps-v5-border);
2502    border-radius: 16px;
2503    background: var(--ps-v5-soft);
2504    overflow: hidden;
2505}
2506
2507.ps-home-location-detail {
2508    border-bottom: 1px solid var(--ps-v5-border);
2509}
2510
2511.ps-home-location-detail:last-child {
2512    border-bottom: 0;
2513}
2514
2515.ps-home-location-detail > summary {
2516    display: flex;
2517    min-height: 62px;
2518    align-items: center;
2519    justify-content: space-between;
2520    gap: 18px;
2521    padding: 0 20px;
2522    color: var(--ps-v5-text);
2523    font-size: 14px;
2524    font-weight: 800;
2525}
2526
2527.ps-home-location-detail > summary > span:last-child {
2528    color: var(--ps-v5-primary);
2529    font-size: 21px;
2530    transition: transform .2s ease;
2531}
2532
2533.ps-home-location-detail > div {
2534    padding: 0 20px 18px;
2535}
2536
2537.ps-home-location-detail p {
2538    margin: 0 0 11px !important;
2539    color: var(--ps-v5-muted) !important;
2540    font-size: 13px !important;
2541    line-height: 1.6 !important;
2542}
2543
2544.ps-home-location-detail a {
2545    color: var(--ps-v5-cyan-ink) !important;
2546    font-size: 12px;
2547    font-weight: 800;
2548}
2549
2550@media only screen and (max-width: 920px) {
2551    .ps-home-process,
2552    .ps-home-locations {
2553        padding: 78px 0;
2554    }
2555
2556    .ps-home-process__heading,
2557    .ps-home-locations__heading,
2558    .ps-home-locations__layout {
2559        grid-template-columns: 1fr;
2560        gap: 28px;
2561    }
2562
2563    .ps-home-process__grid {
2564        grid-template-columns: repeat(2, minmax(0, 1fr));
2565    }
2566
2567    .ps-home-process-card:last-child {
2568        grid-column: 1 / -1;
2569    }
2570
2571    /* On tablet and mobile, lead with proof of work before the longer hero copy. */
2572    .ps-v5-hero__media {
2573        grid-row: 1;
2574    }
2575
2576    .ps-v5-hero__copy {
2577        grid-row: 2;
2578    }
2579}
2580
2581@media only screen and (max-width: 620px) {
2582    .ps-home-product-index__copy,
2583    .ps-home-process__grid,
2584    .ps-home-locations__mosaic {
2585        grid-template-columns: 1fr;
2586    }
2587
2588    .ps-home-process,
2589    .ps-home-locations {
2590        padding: 62px 0;
2591    }
2592
2593    .ps-home-process__heading h2,
2594    .ps-home-locations__heading h2 {
2595        font-size: var(--ps-v5-type-editorial-h2) !important;
2596    }
2597
2598    .ps-home-process__grid,
2599    .ps-home-locations__layout {
2600        margin-top: 34px;
2601    }
2602
2603    .ps-home-process-card:last-child {
2604        grid-column: auto;
2605    }
2606
2607    .ps-home-process-card__image {
2608        height: 240px;
2609    }
2610
2611    .ps-home-locations__mosaic {
2612        min-height: 0;
2613        grid-template-rows: none;
2614    }
2615
2616    .ps-home-location-image,
2617    .ps-home-location-image--feature {
2618        aspect-ratio: 4 / 3;
2619        grid-row: auto;
2620    }
2621
2622    /* Two-up tiles on a phone. Nine categories and eight capabilities are the
2623       main doors into the money pages, so every one stays visible instead of
2624       eight hiding behind a 44px swipe cue with no dots or arrows to announce
2625       them. Two columns add ~950px of page height; stacking the cards full
2626       width would have added ~2,400px to an already long homepage. */
2627    body.ps-v5-homepage-enabled .ps-v5-range__grid,
2628    body.ps-v5-homepage-enabled .ps-v5-production__grid {
2629        display: grid;
2630        grid-auto-flow: row;
2631        grid-auto-columns: auto;
2632        grid-template-columns: repeat(2, minmax(0, 1fr));
2633        gap: 10px;
2634        padding: 0;
2635        overflow-x: visible;
2636        overscroll-behavior-inline: auto;
2637        scroll-snap-type: none;
2638    }
2639
2640    /* A tile is ~176px wide at 390px. It carries an image and a label; the
2641       blurb and the redundant "Explore" affordance (the whole card is the
2642       link) would push every tile past 400px tall. Both stay in the DOM. */
2643    body.ps-v5-homepage-enabled .ps-v5-range__grid .ps-v5-range-card__body,
2644    body.ps-v5-homepage-enabled .ps-v5-production__grid .ps-v5-range-card__body {
2645        gap: 0;
2646        padding: 11px 12px 13px;
2647    }
2648
2649    body.ps-v5-homepage-enabled .ps-v5-range__grid .ps-v5-range-card__body > strong,
2650    body.ps-v5-homepage-enabled .ps-v5-production__grid .ps-v5-range-card__body > strong {
2651        font-size: 13.5px;
2652        line-height: 1.28;
2653    }
2654
2655    body.ps-v5-homepage-enabled .ps-v5-range__grid .ps-v5-range-card__body > span,
2656    body.ps-v5-homepage-enabled .ps-v5-production__grid .ps-v5-range-card__body > span {
2657        display: none;
2658    }
2659}
2660
2661@media only screen and (max-width: 1199px) {
2662    body.ps-v5-homepage-enabled #totop {
2663        bottom: 72px !important;
2664    }
2665
2666    body.ps-v5-homepage-enabled .site-navigation {
2667        min-height: 72px;
2668    }
2669
2670    body.ps-v5-homepage-enabled #logo-img {
2671        width: 148px;
2672    }
2673
2674    .ps-v5-hero {
2675        padding-top: 120px;
2676    }
2677
2678    .ps-v5-hero__grid {
2679        grid-template-columns: 1fr 1fr;
2680        gap: 42px;
2681    }
2682
2683    .ps-v5-hero__title {
2684        font-size: var(--ps-v5-type-display-h1) !important;
2685    }
2686}
2687
2688@media only screen and (max-width: 1000px) {
2689    .ps-v5-quote-layout {
2690        grid-template-columns: minmax(0, 600px);
2691        justify-content: center;
2692    }
2693
2694    .ps-v5-quote-visual {
2695        display: none;
2696    }
2697}
2698
2699@media only screen and (max-width: 920px) {
2700    .ps-v5-shell {
2701        width: min(100% - 36px, 760px);
2702    }
2703
2704    .ps-v5-hero {
2705        padding: 112px 0 72px;
2706    }
2707
2708    .ps-v5-hero__grid,
2709    .ps-v5-delivery__intro,
2710    .ps-v5-capabilities__heading,
2711    .ps-v5-industries__heading,
2712    .ps-v5-proof__heading,
2713    .ps-v5-reviews__heading,
2714    .ps-v5-videos__heading,
2715    .ps-v5-closing__inner {
2716        grid-template-columns: 1fr;
2717    }
2718
2719    .ps-v5-hero__grid {
2720        gap: 48px;
2721    }
2722
2723    .ps-v5-hero__copy {
2724        max-width: 680px;
2725    }
2726
2727    .ps-v5-hero__media {
2728        max-width: 720px;
2729    }
2730
2731    .ps-v5-quote-section {
2732        padding: 44px 0 54px;
2733    }
2734
2735    .ps-v5-delivery,
2736    .ps-v5-capabilities,
2737    .ps-v5-range,
2738    .ps-v5-cutting-feature,
2739    .ps-v5-industries,
2740    .ps-v5-videos {
2741        padding: 78px 0;
2742    }
2743
2744    .ps-v5-delivery__intro,
2745    .ps-v5-capabilities__heading,
2746    .ps-v5-industries__heading,
2747    .ps-v5-proof__heading,
2748    .ps-v5-reviews__heading,
2749    .ps-v5-videos__heading,
2750    .ps-v5-closing__inner {
2751        gap: 28px;
2752    }
2753
2754    .ps-v5-industries__grid {
2755        grid-template-columns: repeat(2, minmax(0, 1fr));
2756    }
2757
2758    .ps-v5-proof__logos {
2759        grid-template-columns: repeat(3, minmax(0, 1fr));
2760    }
2761
2762    .ps-v5-reviews__grid {
2763        grid-template-columns: 1fr;
2764    }
2765
2766    .ps-v5-review {
2767        min-height: 0;
2768    }
2769
2770    .ps-v5-videos__grid {
2771        grid-template-columns: repeat(2, minmax(0, 1fr));
2772    }
2773
2774    .ps-v5-range__grid {
2775        grid-template-columns: repeat(2, minmax(0, 1fr));
2776        gap: 16px;
2777        margin-top: 42px;
2778    }
2779
2780    .ps-v5-cutting-feature__card {
2781        grid-template-columns: 1fr;
2782    }
2783
2784    .ps-v5-cutting-feature__image {
2785        min-height: 390px;
2786    }
2787
2788    .ps-v5-capability-card:last-child {
2789        display: block;
2790    }
2791
2792    .ps-v5-capability-card:last-child .ps-v5-capability-card__image {
2793        aspect-ratio: 16 / 9;
2794    }
2795
2796    .ps-v5-promises {
2797        padding: 18px 0;
2798    }
2799
2800    .ps-v5-promises__grid {
2801        grid-template-columns: repeat(2, minmax(0, 1fr));
2802        gap: 10px;
2803    }
2804
2805    .ps-v5-promise,
2806    .ps-v5-promise:first-child {
2807        min-height: 88px;
2808        padding: 18px;
2809        border: 1px solid var(--ps-v5-border);
2810        border-radius: 12px;
2811        background: #f8f8f6;
2812    }
2813
2814    .ps-v5-promise:last-child {
2815        grid-column: 1 / -1;
2816    }
2817}
2818
2819@media only screen and (max-width: 620px) {
2820    body.ps-v5-homepage-enabled {
2821        --ps-v5-type-display-h1: clamp(38px, 10vw, 42px);
2822        --ps-v5-type-editorial-h2: clamp(28px, 7.5vw, 32px);
2823    }
2824
2825    /* The legacy back-to-top control competed with the persistent call CTA and
2826       covered industry-card copy on narrow screens. The call CTA is the only
2827       floating action retained on mobile. */
2828    body.ps-v5-homepage-enabled #totop,
2829    body.ps-v5-homepage-enabled #totop.top-visible {
2830        display: none !important;
2831    }
2832
2833    .ps-v5-shell {
2834        width: min(100% - 28px, 540px);
2835    }
2836
2837    .ps-v5-hero {
2838        padding: 100px 0 58px;
2839    }
2840
2841    .ps-v5-eyebrow {
2842        margin-bottom: 16px !important;
2843        font-size: 10px !important;
2844    }
2845
2846    .ps-v5-hero__title {
2847        font-size: var(--ps-v5-type-display-h1) !important;
2848        line-height: var(--ps-v5-type-display-leading) !important;
2849    }
2850
2851    .ps-v5-hero__intro {
2852        margin-top: 20px !important;
2853        font-size: 16px !important;
2854        line-height: 1.6 !important;
2855    }
2856
2857    .ps-v5-hero__actions {
2858        grid-template-columns: 1fr;
2859        margin-top: 28px;
2860    }
2861
2862    .ps-v5-button {
2863        width: 100%;
2864        min-height: 52px;
2865    }
2866
2867    .ps-v5-hero__proof {
2868        align-items: flex-start;
2869        font-size: 12px !important;
2870    }
2871
2872    .ps-v5-hero__grid {
2873        gap: 38px;
2874    }
2875
2876    .ps-v5-crossfade {
2877        aspect-ratio: 4 / 3;
2878        border-radius: 16px;
2879    }
2880
2881    .ps-v5-quote-section {
2882        padding: 28px 0 38px;
2883    }
2884
2885    .ps-premium-quote {
2886        --ps-quote-radius: 16px;
2887        padding: 18px;
2888        border-radius: var(--ps-quote-radius);
2889    }
2890
2891    .ps-premium-quote .ps-quote-contact-grid,
2892    .ps-premium-quote .ps-quote-contact-grid--more {
2893        grid-template-columns: 1fr;
2894        gap: 14px;
2895    }
2896
2897    .ps-premium-quote .ps-quote-contact-grid > :last-child:nth-child(odd) {
2898        grid-column: auto;
2899        width: auto;
2900    }
2901
2902    .ps-premium-quote .ps-field--full,
2903    .ps-premium-quote .ps-submit-group,
2904    .ps-premium-quote #addFile {
2905        grid-column: 1;
2906    }
2907
2908    .ps-premium-quote .ps-upload-row {
2909        grid-template-columns: 1fr;
2910    }
2911
2912    .ps-premium-quote .ps-upload-row #button-addon1 {
2913        width: 100% !important;
2914    }
2915
2916    .ps-premium-quote .ps-upload-preview {
2917        grid-template-columns: 62px minmax(0, 1fr) 30px;
2918        flex-basis: 194px;
2919        min-height: 70px;
2920    }
2921
2922    .ps-premium-quote .ps-upload-preview__media img {
2923        min-height: 70px;
2924    }
2925
2926    .ps-premium-quote .ps-quote-step-actions {
2927        grid-template-columns: auto minmax(0, 1fr);
2928        gap: 9px;
2929    }
2930
2931    .ps-premium-quote .ps-quote-back {
2932        grid-column: 1;
2933        grid-row: 1;
2934        justify-self: start;
2935    }
2936
2937    .ps-premium-quote .ps-quote-step-actions .ps-submit-group {
2938        grid-column: 2;
2939        grid-row: 1;
2940    }
2941
2942    .ps-v5-delivery,
2943    .ps-v5-capabilities,
2944    .ps-v5-range,
2945    .ps-v5-cutting-feature,
2946    .ps-v5-industries,
2947    .ps-v5-videos,
2948    .ps-v5-closing {
2949        padding: 62px 0;
2950    }
2951
2952    .ps-v5-delivery__intro h2,
2953    .ps-v5-capabilities__heading h2,
2954    .ps-v5-range__heading h2,
2955    .ps-v5-cutting-feature__body h2,
2956    .ps-v5-industries__heading h2,
2957    .ps-v5-proof__heading h2,
2958    .ps-v5-reviews__heading h2,
2959    .ps-v5-videos__heading h2,
2960    .ps-v5-closing h2 {
2961        font-size: var(--ps-v5-type-editorial-h2) !important;
2962    }
2963
2964    .ps-v5-delivery__grid,
2965    .ps-v5-capabilities__grid {
2966        grid-template-columns: 1fr;
2967        margin-top: 38px;
2968    }
2969
2970    .ps-v5-delivery__grid article {
2971        min-height: 0;
2972        border-right: 0;
2973        border-bottom: 1px solid var(--ps-v5-border);
2974    }
2975
2976    .ps-v5-delivery__grid article:last-child {
2977        border-bottom: 0;
2978    }
2979
2980    .ps-v5-capability-card:last-child {
2981        grid-column: auto;
2982    }
2983
2984    .ps-v5-range__heading > div > p:last-child {
2985        margin-top: 18px !important;
2986        font-size: 15px !important;
2987    }
2988
2989    .ps-v5-range__grid {
2990        grid-template-columns: 1fr;
2991        gap: 14px;
2992        margin-top: 34px;
2993    }
2994
2995    .ps-v5-range-card__body {
2996        padding: 20px;
2997    }
2998
2999    .ps-v5-cutting-feature__card {
3000        border-radius: 16px;
3001    }
3002
3003    .ps-v5-cutting-feature__image {
3004        min-height: 250px;
3005    }
3006
3007    .ps-v5-cutting-feature__body {
3008        padding: 28px 22px 32px;
3009    }
3010
3011    .ps-v5-cutting-feature__actions {
3012        display: grid;
3013        gap: 14px;
3014    }
3015
3016    .ps-v5-industries__grid {
3017        gap: 10px;
3018        margin-top: 34px;
3019    }
3020
3021    .ps-v5-industry-card {
3022        min-height: 214px;
3023        padding: 19px 16px;
3024        border-radius: 15px;
3025    }
3026
3027    .ps-v5-industry-card__icon {
3028        width: 46px;
3029        height: 46px;
3030        margin-bottom: 16px;
3031    }
3032
3033    .ps-v5-industry-card__title {
3034        font-size: 15px;
3035    }
3036
3037    .ps-v5-industry-card__copy {
3038        font-size: 11.5px;
3039        line-height: 1.45;
3040    }
3041
3042    .ps-v5-industry-card__link {
3043        padding-top: 13px;
3044        font-size: 10.5px;
3045    }
3046
3047    .ps-v5-proof > .ps-v5-shell:first-child {
3048        padding-top: 64px;
3049    }
3050
3051    .ps-v5-proof__logos {
3052        grid-template-columns: repeat(2, minmax(0, 1fr));
3053        gap: 9px;
3054        margin-top: 34px;
3055    }
3056
3057    .ps-v5-proof__logos .ps-trusted-brands__card {
3058        min-height: 90px;
3059        padding: 14px;
3060    }
3061
3062    .ps-v5-proof__stats {
3063        margin-top: 40px;
3064        padding: 42px 0;
3065    }
3066
3067    .ps-v5-proof__stats .ps-trusted-stats__grid {
3068        grid-template-columns: 1fr;
3069        gap: 30px;
3070    }
3071
3072    .ps-v5-reviews {
3073        padding-top: 64px;
3074        padding-bottom: 70px;
3075    }
3076
3077    .ps-v5-reviews__grid {
3078        grid-template-columns: 1fr;
3079        margin-top: 34px;
3080    }
3081
3082    /* Two-up proof gallery. Six full-bleed 16:9 thumbnails stacked ran to
3083       ~1,700px — about 10% of the homepage — for content most visitors never
3084       play. Two columns read as evidence and cost ~800px. The cards are
3085       facades (thumbnail + button), so nothing here changes load cost. */
3086    .ps-v5-videos__grid {
3087        grid-template-columns: repeat(2, minmax(0, 1fr));
3088        gap: 10px;
3089        margin-top: 30px;
3090    }
3091
3092    .ps-v5-video-card__caption {
3093        right: 10px;
3094        bottom: 9px;
3095        left: 10px;
3096        gap: 2px;
3097    }
3098
3099    .ps-v5-video-card__caption small {
3100        font-size: 8.5px;
3101        letter-spacing: .1em;
3102    }
3103
3104    .ps-v5-video-card__caption strong {
3105        font-size: 11px;
3106        line-height: 1.25;
3107    }
3108
3109    /* On a 176x99 thumbnail a centred play button lands on the eyebrow label.
3110       Lift it clear of the caption instead of dropping either element. */
3111    .ps-v5-video-card__play {
3112        top: 32%;
3113        width: 34px;
3114        height: 34px;
3115    }
3116
3117    .ps-v5-review {
3118        padding: 24px 21px;
3119    }
3120
3121    .ps-v5-videos__heading > a {
3122        width: 100%;
3123    }
3124
3125    .ps-v5-promises__grid {
3126        grid-template-columns: 1fr;
3127    }
3128
3129    .ps-v5-promise:last-child {
3130        grid-column: auto;
3131    }
3132
3133    body.ps-v5-homepage-enabled main .service-section {
3134        padding-top: 62px !important;
3135    }
3136
3137    body.ps-v5-homepage-enabled main .padding_top_zero-section {
3138        padding-bottom: 66px !important;
3139    }
3140}
3141
3142@media (prefers-reduced-motion: reduce) {
3143    .ps-v5-homepage *,
3144    .ps-v5-homepage *::before,
3145    .ps-v5-homepage *::after {
3146        scroll-behavior: auto !important;
3147        transition-duration: .01ms !important;
3148        animation-duration: .01ms !important;
3149        animation-iteration-count: 1 !important;
3150    }
3151
3152    .ps-v5-crossfade {
3153        scroll-snap-type: none;
3154    }
3155}
3156
3157</style>
3158
3159<link rel="stylesheet" id="ps-premium-footer-css" href="/css/ps-premium-footer.css?v=42c5de899778" data-css-sha256="42c5de899778">
3160
3161
3162
3163<!-- PS MOBILE SHELL RESCUE START -->
3164<link rel="stylesheet" id="ps-mobile-shell-css" href="/css/ps-mobile-shell.css?v=4556c63b04d9" data-css-sha256="4556c63b04d9">
3165<!-- PS MOBILE SHELL RESCUE END -->
3166<!-- PS TYPOGRAPHY REFRESH START -->
3167<link rel="preload" href="/fonts/ps-inter-v5-latin.woff2?v=c940764593d0" as="font" type="font/woff2" crossorigin data-font-sha256="c940764593d0">
3168<link rel="stylesheet" id="ps-typography-css" href="/css/ps-typography.css?v=12e20142c430" data-css-sha256="12e20142c430">
3169<!-- PS TYPOGRAPHY REFRESH END -->
3170<!-- PS PUBLIC HEADER V3 ASSETS START -->
3171<link rel="stylesheet" href="/css/public-header-v3.css?v=bb91badcf4df" data-css-sha256="bb91badcf4df">
3172<script src="/js/public-search-core.js?v=abd8eb7a2610" defer></script>
vendor: 1 bytes, line 3172
3172
3173<script src="/js/public-header-v3.js?v=e60f494445bb" defer></script>
vendor: 1 bytes, line 3173
3173
3174<script src="/js/gallery-download.js?v=6d660ba7b9d9" defer></script>
3174
3175<!-- PS PUBLIC HEADER V3 ASSETS END -->
3176</head>
3177  <body class="ps-v5-homepage-enabled ps-refined-type">
3178      
3179      
3180    	<!-- page start -->
3181<div class="page">
3182    <div class="min-box">
3183
3184    <!-- header start -->
3185<header id="ps-header-v3" data-navigation-sha256="54da4414516aeda946a3d19e2b43cdea2ef77d019199809913edae95b3e1ce45" class="psh3-header">
3186  <div class="psh3-mobile-phone"><a class="psh3-phone" href="tel:1300448608" aria-label="Call Platinum Signs on 1300 448 608"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M6.62 10.79a15.46 15.46 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.61 21 3 13.39 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1.02l-2.2 2.2Z"/></svg><span>1300 448 608</span></a></div>
3187  <div class="psh3-shell">
3188    <a class="psh3-logo" href="/" aria-label="Platinum Signs home">
3189      <img src="/images/logo-white.png" srcset="/images/logo-white.ps-183.webp 1x, /images/logo-white.ps-366.webp 2x" width="183" height="45" alt="Platinum Signs" decoding="async">
3190    </a>
3191    <div class="psh3-search" data-psh3-search>
3192      <svg class="psh3-search-icon" viewBox="0 0 24 24" aria-hidden="true"><circle cx="11" cy="11" r="7"></circle><path d="m20 20-4-4"></path></svg>
3193      <label class="psh3-sr-only" for="psh3-search-input">Search the Platinum Signs website</label>
3194      <input id="psh3-search-input" type="search" placeholder="Search signs &amp; services" autocomplete="off" role="combobox" aria-autocomplete="list" aria-controls="psh3-search-results" aria-expanded="false">
3195      <button class="psh3-search-close" type="button" aria-label="Close search" hidden>×</button>
3196      <div id="psh3-search-results" class="psh3-search-results" role="listbox" hidden></div>
3197    </div>
3198    <button class="psh3-search-trigger" type="button" aria-label="Search" data-psh3-search-trigger>
3199      <svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="11" cy="11" r="7"></circle><path d="m20 20-4-4"></path></svg>
3200    </button>
3201    <nav class="psh3-desktop-nav" aria-label="Primary navigation">
3202      <a class="psh3-top-link" href="/shop">Shop</a>
3203      <div class="psh3-category"><a class="psh3-top-link" href="/business-signage" aria-haspopup="true">Sign Types<span class="psh3-chevron" aria-hidden="true">⌄</span></a><div class="psh3-mega psh3-mega-visual"><div class="psh3-mega-card"><!-- psh3-business-menu:start --><a class="psh3-view-all" href="/business-signage">View all business signage<span aria-hidden="true">→</span></a><div class="psh3-menu-groups"><section class="psh3-menu-group" aria-labelledby="psh3-signs-lettering-heading"><p id="psh3-signs-lettering-heading" class="psh3-menu-heading">Signs &amp; lettering</p><div class="psh3-menu-group-items"><a class="psh3-menu-item psh3-menu-item-visual" href="/3d-signs"><img class="psh3-menu-thumb" src="/images/menu/3d-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>3D Signs</span><small>Fabricated signs with depth, lit or unlit</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/3d-lettering"><img class="psh3-menu-thumb" src="/images/menu/3d-lettering.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>3D Lettering</span><small>Solid cut-out acrylic and metal letters</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/backlit-signs"><img class="psh3-menu-thumb" src="/images/menu/backlit-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Backlit Signs</span><small>3D letters and logos with a halo glow</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/lightbox-signs"><img class="psh3-menu-thumb" src="/images/menu/lightbox-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Lightbox Signs</span><small>Cabinet, blade and under-awning lightboxes</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/neon-signs"><img class="psh3-menu-thumb" src="/images/menu/neon-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Neon Signs</span><small>LED neon logos, words and feature walls</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/acrylic-signs"><img class="psh3-menu-thumb" src="/images/menu/acrylic-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Acrylic Signs</span><small>Printed, cut and layered acrylic signs</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/metal-signs"><img class="psh3-menu-thumb" src="/images/menu/metal-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Metal Signs</span><small>Stainless, brass and aluminium signs</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/aluminium-composite-panels"><img class="psh3-menu-thumb" src="/images/menu/aluminium-composite-panels.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>ACM Panels</span><small>Printed aluminium composite sign panels</small></a></div></section><section class="psh3-menu-group" aria-labelledby="psh3-business-buildings-heading"><p id="psh3-business-buildings-heading" class="psh3-menu-heading">Business &amp; buildings</p><div class="psh3-menu-group-items"><a class="psh3-menu-item psh3-menu-item-visual" href="/building-signage"><img class="psh3-menu-thumb" src="/images/menu/building-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Building Signage</span><small>External identification and façades</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/fascia-signs"><img class="psh3-menu-thumb" src="/images/menu/fascia-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>
3203Fascia Signs</span><small>Shop fascia and awning signs</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/shopfront-signage"><img class="psh3-menu-thumb" src="/images/menu/shopfront-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Shopfront Signage</span><small>Retail shopfront and entrance signs</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/corporate-signage"><img class="psh3-menu-thumb" src="/images/menu/corporate-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Corporate Signage</span><small>Branded signage packages for business</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/office-signage"><img class="psh3-menu-thumb" src="/images/menu/office-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Office Signage</span><small>Workplace, lobby and wayfinding signs</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/reception-signage"><img class="psh3-menu-thumb" src="/images/menu/reception-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Reception Signage</span><small>Reception logos and feature walls</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/directional-signage"><img class="psh3-menu-thumb" src="/images/menu/directional-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Directional Signage</span><small>Wayfinding, room and directory signs</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/hoarding-signage"><img class="psh3-menu-thumb" src="/images/menu/hoarding-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Hoarding Signage</span><small>Construction hoarding and site wraps</small></a></div></section><section class="psh3-menu-group" aria-labelledby="psh3-graphics-displays-heading"><p id="psh3-graphics-displays-heading" class="psh3-menu-heading">Graphics &amp; displays</p><div class="psh3-menu-group-items"><a class="psh3-menu-item psh3-menu-item-visual" href="/window-decals"><img class="psh3-menu-thumb" src="/images/menu/window-decals.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Window Graphics</span><small>Decals, promotions and one-way vision</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/window-frost-film"><img class="psh3-menu-thumb" src="/images/menu/window-frost-film.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Window Frosting</span><small>Privacy film and branded glazing</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/wall-decals"><img class="psh3-menu-thumb" src="/images/menu/wall-decals.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Wall Decals</span><small>Printed murals, wall vinyl, logos and lettering</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/floor-decals"><img class="psh3-menu-thumb" src="/images/menu/floor-decals.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Floor Decals</span><small>Indoor floor graphics and directional decals</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/display-signage"><img class="psh3-menu-thumb" src="/images/menu/display-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Display Signage</span><small>Pull-up banners, media walls and displays</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/digital-signage"><img class="psh3-menu-thumb" src="/images/menu/digital-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Digital Signage</span><small>Electronic displays and screen systems</small></a></div></section></div></div></div><!-- psh3-business-menu:end --></div><div class="psh3-category"><a class="psh3-top-link" href="/industries-signage" aria-haspopup="true">Industries<span class="psh3-chevron" aria-hidden="true">⌄</span></a><div class="psh3-mega psh3-mega-visual"><div class="psh3-mega-card"><!-- psh3-industries-menu:start --><a class="psh3-view-all" href="/industries-signage">View all industry signage<span aria-hidden="true">→</span></a><div class="psh3-menu-groups"><section class="psh3-menu-group" aria-labelledby="psh3-commercial-hospitality-heading"><p id="psh3-commercial-hospitality-heading" class="psh3-menu-heading">Commercial &amp;
3203 hospitality</p><div class="psh3-menu-group-items"><a class="psh3-menu-item psh3-menu-item-visual" href="/retail-signage"><img class="psh3-menu-thumb" src="/images/menu/retail-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Retail Signage</span><small>Shopfronts, POS and visual merchandising</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/restaurant-cafe-signage"><img class="psh3-menu-thumb" src="/images/menu/restaurant-cafe-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Restaurant &amp; Café Signage</span><small>Hospitality branding, menus and wayfinding</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/bar-signage"><img class="psh3-menu-thumb" src="/images/menu/bar-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Bar &amp; Pub Signage</span><small>Bars, pubs, clubs and venue branding</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/hotel-signs"><img class="psh3-menu-thumb" src="/images/menu/hotel-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Hotel Signage</span><small>Guest, room and directional signage</small></a></div></section><section class="psh3-menu-group" aria-labelledby="psh3-property-construction-heading"><p id="psh3-property-construction-heading" class="psh3-menu-heading">Property &amp; construction</p><div class="psh3-menu-group-items"><a class="psh3-menu-item psh3-menu-item-visual" href="/construction-signage"><img class="psh3-menu-thumb" src="/images/menu/construction-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Construction Signage</span><small>Hoardings, sites and project communication</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/real-estate-signage"><img class="psh3-menu-thumb" src="/images/menu/real-estate-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Real Estate Signage</span><small>Sales, leasing and development displays</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/architectural-signage"><img class="psh3-menu-thumb" src="/images/menu/architectural-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Architectural Signage</span><small>Integrated built-environment signage</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/warehouse-signage"><img class="psh3-menu-thumb" src="/images/menu/warehouse-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Warehouse &amp; Industrial Signage</span><small>Warehouses, factories and industrial sites</small></a></div></section><section class="psh3-menu-group" aria-labelledby="psh3-public-community-heading"><p id="psh3-public-community-heading" class="psh3-menu-heading">Public &amp; community</p><div class="psh3-menu-group-items"><a class="psh3-menu-item psh3-menu-item-visual" href="/school-signage"><img class="psh3-menu-thumb" src="/images/menu/school-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Education Signage</span><small>Schools, campuses and directional systems</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/event-signage"><img class="psh3-menu-thumb" src="/images/menu/event-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Event Signage</span><small>Exhibitions, activations and temporary displays</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/church-signage"><img class="psh3-menu-thumb" src="/images/menu/church-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Church Signage</span><small>Churches, places of worship and community halls</small></a></div></section></div></div></div><!-- psh3-industries-menu:end --></div><div class="psh3-category"><a class="psh3-top-link" href="/cutting-services" aria-haspopup="true">Fabrication<span class="psh3-chevron" aria-hidden="true">⌄</span></a><div class="psh3-mega psh3-mega-visual"><div class="psh3-mega-card"><a class="psh3-view-all" href="/cutting-services">View all cutting &amp; fabrication services<span aria-hidden="true">→</span></a><div class="psh3-menu-grid psh3-menu-grid-visual"><a class="psh3-menu-item psh3-menu-item-visual" href="/fiber-laser-cutting"><img class="psh3-menu-thumb" src="/images/menu/fiber-laser-cutting.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Fiber Laser Cutting</span><small>Precision sheet-metal cutting</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/laser-cutting"><img class="psh3-menu-thumb" src="/images/menu/laser-cutting.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>CO₂ Laser Cutting</span><small>Acrylic, plastics and timber</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/cnc-router-cutting"><img class="psh3-menu-thumb" src="/images/menu/cnc-router-cutting.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>CNC Router Cutting</span><small>Panels, timber and composites</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/digital-knife-cutting"><img class="psh3-menu-thumb" src="/images/menu/digital-knife-cutting.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Knife Digital Cutting</span><small>Foam, rubber, vinyl and board</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/3d-printing"><img class="psh3-menu-thumb" src="/images/menu/3d-printing.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>3D Printing</span><small>Large-format additive production</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/laser-welding"><img class="psh3-menu-thumb" src="/images/menu/laser-welding.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Laser Welding</span><small>Clean, low-distortion metal joins</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/2-pack-spray-painting"><img class="psh3-menu-thumb" src="/images/menu/2-pack-spray-painting.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>2-Pack Spray Painting</span><small>Durable colour-matched finishing</small></a><a class="psh3-menu-item psh3-menu-item-visual" href="/laser-marking"><img class="psh3-menu-thumb" src="/images/menu/laser-marking.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Laser Marking</span><small>Permanent metal identification</small></a></div></div></div></div>
3204      <a class="psh3-top-link" href="/projects">Projects</a>
3205      <a class="psh3-top-link" href="/contact-us">Get in Touch</a>
3206    </nav>
3207    <div class="psh3-actions">
3208      <a class="psh3-sign-in" href="https://portal.platinumsigns.com.au/login">
3209        <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
3210        <span>Sign In</span>
3211      </a>
3212      <a class="psh3-phone" href="tel:1300448608" aria-label="Call Platinum Signs on 1300 448 608"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M6.62 10.79a15.46 15.46 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.61 21 3 13.39 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1.02l-2.2 2.2Z"/></svg><span>1300 448 608</span></a>
3213      <a class="psh3-cart" href="/cart" aria-label="Cart">
3214        <svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="9" cy="21" r="1"></circle><circle cx="20" cy="21" r="1"></circle><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path></svg>
3215        <span>Cart</span>
3216      </a>
3217      <button class="psh3-menu-trigger" type="button" aria-label="Open navigation" aria-expanded="false" aria-controls="psh3-mobile-nav" data-psh3-menu-trigger>
3218        <svg class="psh3-menu-open" viewBox="0 0 24 24" aria-hidden="true"><path d="M4 7h16M4 12h16M4 17h16"></path></svg>
3219        <svg class="psh3-menu-close" viewBox="0 0 24 24" aria-hidden="true" hidden><path d="M6 6l12 12M18 6 6 18"></path></svg>
3220      </button>
3221    </div>
3222  </div>
3223  <nav id="psh3-mobile-nav" class="psh3-mobile-nav" aria-label="Mobile navigation" hidden>
3224    <a class="psh3-mobile-primary" href="/shop">Shop Online</a>
3225    <div class="psh3-mobile-group"><div class="psh3-mobile-parent"><a href="/business-signage">Sign Types</a><button type="button" aria-expanded="false" aria-controls="psh3-mobile-business" data-psh3-submenu="business" aria-label="Show signage"><span aria-hidden="true">⌄</span></button></div><!-- psh3-mobile-business-menu:start --><div id="psh3-mobile-business" class="psh3-mobile-submenu psh3-mobile-submenu-grouped" hidden><div class="psh3-mobile-groups"><section class="psh3-mobile-group" aria-labelledby="psh3-mobile-signs-lettering-heading"><p id="psh3-mobile-signs-lettering-heading" class="psh3-mobile-group-heading">Signs &amp; lettering</p><a class="psh3-mobile-item psh3-mobile-item-visual" href="/3d-signs"><img class="psh3-menu-thumb" src="/images/menu/3d-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>3D Signs</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/3d-lettering"><img class="psh3-menu-thumb" src="/images/menu/3d-lettering.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>3D Lettering</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/backlit-signs"><img class="psh3-menu-thumb" src="/images/menu/backlit-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Backlit Signs</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/lightbox-signs"><img class="psh3-menu-thumb" src="/images/menu/lightbox-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Lightbox Signs</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/neon-signs"><img class="psh3-menu-thumb" src="/images/menu/neon-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Neon Signs</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/acrylic-signs"><img class="psh3-menu-thumb" src="/images/menu/acrylic-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Acrylic Signs</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/metal-signs"><img class="psh3-menu-thumb" src="/images/menu/metal-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Metal Signs</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/aluminium-composite-panels"><img class="psh3-menu-thumb" src="/images/menu/aluminium-composite-panels.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>ACM Panels</span></a></section><section class="psh3-mobile-group" aria-labelledby="psh3-mobile-business-buildings-heading"><p id="psh3-mobile-business-buildings-heading" class="psh3-mobile-group-heading">Business &amp; buildings</p><a class="psh3-mobile-item psh3-mobile-item-visual" href="/building-signage"><img class="psh3-menu-thumb" src="/images/menu/building-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Building Signage</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/fascia-signs"><img class="psh3-menu-thumb" src="/images/menu/fascia-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>
3225Fascia Signs</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/shopfront-signage"><img class="psh3-menu-thumb" src="/images/menu/shopfront-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Shopfront Signage</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/corporate-signage"><img class="psh3-menu-thumb" src="/images/menu/corporate-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Corporate Signage</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/office-signage"><img class="psh3-menu-thumb" src="/images/menu/office-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Office Signage</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/reception-signage"><img class="psh3-menu-thumb" src="/images/menu/reception-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Reception Signage</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/directional-signage"><img class="psh3-menu-thumb" src="/images/menu/directional-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Directional Signage</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/hoarding-signage"><img class="psh3-menu-thumb" src="/images/menu/hoarding-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Hoarding Signage</span></a></section><section class="psh3-mobile-group" aria-labelledby="psh3-mobile-graphics-displays-heading"><p id="psh3-mobile-graphics-displays-heading" class="psh3-mobile-group-heading">Graphics &amp; displays</p><a class="psh3-mobile-item psh3-mobile-item-visual" href="/window-decals"><img class="psh3-menu-thumb" src="/images/menu/window-decals.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Window Graphics</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/window-frost-film"><img class="psh3-menu-thumb" src="/images/menu/window-frost-film.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Window Frosting</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/wall-decals"><img class="psh3-menu-thumb" src="/images/menu/wall-decals.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Wall Decals</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/floor-decals"><img class="psh3-menu-thumb" src="/images/menu/floor-decals.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Floor Decals</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/display-signage"><img class="psh3-menu-thumb" src="/images/menu/display-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Display Signage</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/digital-signage"><img class="psh3-menu-thumb" src="/images/menu/digital-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Digital Signage</span></a></section></div></div><!-- psh3-mobile-business-menu:end --></div><div class="psh3-mobile-group"><div class="psh3-mobile-parent"><a href="/industries-signage">Industries</a><button type="button" aria-expanded="false" aria-controls="psh3-mobile-industries" data-psh3-submenu="industries" aria-label="Show industries"><span aria-hidden="true">⌄</span></button></div><!-- psh3-mobile-industries-menu:start --><div id="psh3-mobile-industries" class="psh3-mobile-submenu psh3-mobile-submenu-grouped" hidden><div class="psh3-mobile-groups"><section class="psh3-mobile-group" aria-labelledby="psh3-mobile-commercial-hospitality-heading"><p id="psh3-mobile-commercial-hospitality-heading" class="psh3-mobile-group-heading">Commercial &amp; hospitality</p><a class="psh3-mobile-item psh3-mobile-item-visual" href="/retail-signage"><img class="psh3-menu-thumb" src="/images/menu/retail-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Retail Signage</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/restaurant-cafe-signage"><img class="psh3-menu-thumb" src="/images/menu/restaurant-cafe-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Restaurant &amp; Café Signage</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/bar-signage"><img class="psh3-menu-thumb" src="/images/menu/bar-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Bar &amp; Pub Signage</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/hotel-signs"><img class="psh3-menu-thumb" src="/images/menu/hotel-signs.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Hotel Signage</span></a></section><section class="psh3-mobile-group" aria-labelledby="psh3-mobile-property-construction-heading"><p id="psh3-mobile-property-construction-heading" class="psh3-mobile-group-heading">Property &amp; construction</p><a class="psh3-mobile-item psh3-mobile-item-visual" href="/construction-signage"><img class="psh3-menu-thumb" src="/images/menu/construction-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Construction Signage</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/real-estate-signage"><img class="psh3-menu-thumb" src="/images/menu/real-estate-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Real Estate Signage</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/architectural-signage"><img class="psh3-menu-thumb" src="/images/menu/architectural-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Architectural Signage</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/warehouse-signage"><img class="psh3-menu-thumb" src="/images/menu/warehouse-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Warehouse &amp; Industrial Signage</span></a></section><section class="psh3-mobile-group" aria-labelledby="psh3-mobile-public-community-heading"><p id="psh3-mobile-public-community-heading" class="psh3-mobile-group-heading">Public &amp; community</p><a class="psh3-mobile-item psh3-mobile-item-visual" href="/school-signage"><img class="psh3-menu-thumb" src="/images/menu/school-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Education Signage</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/event-signage"><img class="psh3-menu-thumb" src="/images/menu/event-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Event Signage</span></a><a class="psh3-mobile-item psh3-mobile-item-visual" href="/church-signage"><img class="psh3-menu-thumb" src="/images/menu/church-signage.jpg" alt="" width="40" height="40" loading="lazy" decoding="async"><span>Church Signage</span></a></section></div></div><!-- psh3-mobile-industries-menu:end --></div><div class="psh3-mobile-group"><div class="psh3-mobile-parent"><a href="/cutting-services">Fabrication</a><button type="button" aria-expanded="false" aria-controls="psh3-mobile-cutting" data-psh3
3225-submenu="cutting" aria-label="Show fabrication"><span aria-hidden="true">⌄</span></button></div><div id="psh3-mobile-cutting" class="psh3-mobile-submenu" hidden><a class="psh3-mobile-item" href="/fiber-laser-cutting"><span>Fiber Laser Cutting</span></a><a class="psh3-mobile-item" href="/laser-cutting"><span>CO₂ Laser Cutting</span></a><a class="psh3-mobile-item" href="/cnc-router-cutting"><span>CNC Router Cutting</span></a><a class="psh3-mobile-item" href="/digital-knife-cutting"><span>Knife Digital Cutting</span></a><a class="psh3-mobile-item" href="/3d-printing"><span>3D Printing</span></a><a class="psh3-mobile-item" href="/laser-welding"><span>Laser Welding</span></a><a class="psh3-mobile-item" href="/2-pack-spray-painting"><span>2-Pack Spray Painting</span></a><a class="psh3-mobile-item" href="/laser-marking"><span>Laser Marking</span></a></div></div>
3226    <div class="psh3-mobile-divider"></div>
3227    <a class="psh3-mobile-primary" href="/projects">Projects</a>
3228    <a class="psh3-mobile-primary psh3-mobile-contact" href="/contact-us">Get in Touch</a>
3229    <a class="psh3-mobile-primary" href="https://portal.platinumsigns.com.au/login">Sign In</a>
3230  </nav>
3231</header><!-- header end -->
3232		  
3233<!-- PS PREMIUM HOMEPAGE HERO START -->
3234  <div class="ps-v5-homepage">
3235    <section class="ps-v5-hero" aria-label="Platinum Signs commercial project capability">
3236      <div class="ps-v5-shell ps-v5-hero__grid">
3237        <div class="ps-v5-hero__copy">
3238          <p class="ps-v5-eyebrow">Australian signage company <span aria-hidden="true">·</span> Projects and online shop</p>
3239          <h1 class="ps-v5-hero__title">Custom business signage for projects across Australia.</h1>
3240          <p class="ps-v5-hero__intro">Platinum Signs designs and manufactures custom commercial signage for businesses, builders, architects, agencies and project teams, with delivery and installation coordinated across Australia—from single signs to multi-site rollouts.</p>
3241          <div class="ps-v5-hero__actions">
3242            <a class="ps-v5-button ps-v5-button--primary" href="#ps-v5-range-title">Explore custom business signage <span aria-hidden="true">→</span></a>
3243            <a class="ps-v5-button ps-v5-button--secondary" href="/shop">Shop online <span aria-hidden="true">→</span></a>
3244          </div>
3245          <p class="ps-v5-hero__proof"><span aria-hidden="true"></span> In-house signage production. Australia-wide delivery and project coordination.</p>
3246        </div>
3247
3248        <div class="ps-v5-hero__media">
3249          <div id="sliderhome" class="ps-v5-crossfade" data-interval="5200" aria-label="Featured Platinum Signs projects">
3250            <div class="ps-v5-crossfade__slides">
3251      <a class="ps-v5-crossfade__slide is-active ps-v5-crossfade__slide--base" data-index="0" href="/business-signage"
3252         aria-label="View Business Signage" aria-hidden="false" tabindex="0">
3253        <img src="/images/homepage-hero/dior-shopfront-1920.jpg"
3254             srcset="/images/homepage-hero/dior-shopfront-640.webp 640w, /images/homepage-hero/dior-shopfront-960.webp 960w, /images/homepage-hero/dior-shopfront-1280.webp 1280w, /images/homepage-hero/dior-shopfront-1920.webp 1920w"
3255             sizes="(max-width: 920px) calc(100vw - 36px), 54vw"
3256             decoding="async" fetchpriority="high" width="1600" height="1200"
3257             class="img-responsive" alt="Dior retail shopfront signage and window graphics produced by Platinum Signs">
3258      </a>
3259      <a class="ps-v5-crossfade__slide" data-index="1" href="/a-frame-signs"
3260         aria-label="View A-frame Signs" aria-hidden="true" tabindex="-1">
3261        <canvas class="ps-v5-crossfade__image" role="img" aria-label="Custom A-frame safety signs manufactured by Platinum Signs"
3262              data-src-640="/images/homepage-hero/a-frame-signs-640.webp"
3263              data-src-960="/images/homepage-hero/a-frame-signs-960.webp"
3264              data-src-1280="/images/homepage-hero/a-frame-signs-1280.webp"
3265              data-src-1920="/images/homepage-hero/a-frame-signs-1920.webp"
3266              data-src-fallback="/images/homepage-hero/a-frame-signs-1920.jpg"
3267              width="1600" height="1200">Custom A-frame safety signs manufactured by Platinum Signs</canvas>
3268      </a>
3269      <a class="ps-v5-crossfade__slide" data-index="2" href="/window-decals"
3270         aria-label="View Window Graphics" aria-hidden="true" tabindex="-1">
3271        <canvas class="ps-v5-crossfade__image" role="img" aria-label="Limerence shopfront window graphics produced by Platinum Signs"
3272              data-src-640="/images/homepage-hero/limerence-window-graphics-640.webp"
3273              data-src-960="/images/homepage-hero/limerence-window-graphics-960.webp"
3274              data-src-1280="/images/homepage-hero/limerence-window-graphics-1280.webp"
3275              data-src-1920="/images/homepage-hero/limerence-window-graphics-1920.webp"
3276              data-src-fallback="/images/homepage-hero/limerence-window-graphics-1920.jpg"
3277              width="1600" height="1200">Limerence shopfront window graphics produced by Platinum Signs</canvas>
3278      </a>
3279      <a class="ps-v5-crossfade__slide" data-index="3" href="/building-signage"
3280         aria-label="View Building Signage" aria-hidden="true" tabindex="-1">
3281        <canvas class="ps-v5-crossfade__image" role="img" aria-label="HelloFresh halo-lit letters and custom lime logo produced by Platinum Signs"
3282              data-src-640="/images/homepage-hero/hello-fresh-letters-640.webp"
3283              data-src-960="/images/homepage-hero/hello-fresh-letters-960.webp"
3284              data-src-1280="/images/homepage-hero/hello-fresh-letters-1280.webp"
3285              data-src-1920="/images/homepage-hero/hello-fresh-letters-1920.webp"
3286              data-src-fallback="/images/homepage-hero/hello-fresh-letters-1920.jpg"
3287              width="1600" height="1200">HelloFresh halo-lit letters and custom lime logo produced by Platinum Signs</canvas>
3288      </a>
3289            </div>
3290            <div class="ps-v5-crossfade__progress" aria-hidden="true">
3291        <span class="ps-v5-crossfade__bar is-active" data-index="0"><i></i></span>
3292        <span class="ps-v5-crossfade__bar" data-index="1"><i></i></span>
3293        <span class="ps-v5-crossfade__bar" data-index="2"><i></i></span>
3294        <span class="ps-v5-crossfade__bar" data-index="3"><i></i></span>
3295            </div>
3296          </div>
3297          
3297<script>
3298            (function () {
3299              var gallery = document.getElementById('sliderhome');
3300              if (!gallery) return;
3301              var slides = Array.prototype.slice.call(gallery.querySelectorAll('.ps-v5-crossfade__slide'));
3302              var bars = Array.prototype.slice.call(gallery.querySelectorAll('.ps-v5-crossfade__bar'));
3303              var active = 0;
3304              var timer;
3305              var interval = Number(gallery.getAttribute('data-interval')) || 5200;
3306              function drawCover(canvas, image) {
3307                var rect = canvas.getBoundingClientRect();
3308                var ratio = window.devicePixelRatio || 1;
3309                var width = Math.max(1, Math.round(rect.width * ratio));
3310                var height = Math.max(1, Math.round(rect.height * ratio));
3311                var sourceRatio = image.naturalWidth / image.naturalHeight;
3312                var targetRatio = width / height;
3313                var sourceWidth = image.naturalWidth;
3314                var sourceHeight = image.naturalHeight;
3315                var sourceX = 0;
3316                var sourceY = 0;
3317                if (sourceRatio > targetRatio) {
3318                  sourceWidth = image.naturalHeight * targetRatio;
3319                  sourceX = (image.naturalWidth - sourceWidth) / 2;
3320                } else {
3321                  sourceHeight = image.naturalWidth / targetRatio;
3322                  sourceY = (image.naturalHeight - sourceHeight) / 2;
3323                }
3324                canvas.width = width;
3325                canvas.height = height;
3326                var context = canvas.getContext('2d', { alpha: false });
3327                context.drawImage(image, sourceX, sourceY, sourceWidth, sourceHeight, 0, 0, width, height);
3328              }
3329              function loadDeferredSlides() {
3330                var target = gallery.clientWidth * (window.devicePixelRatio || 1);
3331                var width = target <= 704 ? 640 : target <= 1056 ? 960 : target <= 1408 ? 1280 : 1920;
3332                gallery.querySelectorAll('canvas.ps-v5-crossfade__image[data-src-640]').forEach(function (canvas) {
3333                  var loaded = Number(canvas.getAttribute('data-loaded-width')) || 0;
3334                  if (canvas._psImage && loaded >= width) {
3335                    drawCover(canvas, canvas._psImage);
3336                    return;
3337                  }
3338                  var source = canvas.getAttribute('data-src-' + width) || canvas.getAttribute('data-src-fallback');
3339                  var image = new window.Image();
3340                  image.decoding = 'async';
3341                  image.onload = function () {
3342                    canvas._psImage = image;
3343                    canvas.setAttribute('data-loaded-width', String(width));
3344                    drawCover(canvas, image);
3345                  };
3346                  image.src = source;
3347                });
3348              }
3349              function show(index) {
3350                active = index;
3351                slides.forEach(function (slide, slideIndex) {
3352                  var on = slideIndex === active;
3353                  slide.classList.toggle('is-active', on);
3354                  slide.setAttribute('aria-hidden', on ? 'false' : 'true');
3355                  slide.setAttribute('tabindex', on ? '0' : '-1');
3356                });
3357                bars.forEach(function (bar, barIndex) {
3358                  bar.classList.toggle('is-active', barIndex === active);
3359                  bar.classList.toggle('is-complete', barIndex < active);
3360                });
3361              }
3362              function stop() {
3363                if (timer) window.clearTimeout(timer);
3364              }
3365              function schedule() {
3366                stop();
3367                timer = window.setTimeout(function () {
3368                  show((active + 1) % slides.length);
3369                  schedule();
3370                }, interval);
3371              }
3372              function start() {
3373                loadDeferredSlides();
3374                schedule();
3375              }
3376              if (!window.matchMedia || !window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
3377                if ('requestIdleCallback' in window) {
3378                  window.requestIdleCallback(start, { timeout: 3000 });
3379                } else {
3380                  window.setTimeout(start, 2500);
3381                }
3382              }
3383              gallery.addEventListener('mouseenter', stop);
3384              gallery.addEventListener('mouseleave', schedule);
3385              gallery.addEventListener('focusin', stop);
3386              gallery.addEventListener('focusout', schedule);
3387              window.addEventListener('resize', loadDeferredSlides, { passive: true });
3388            })();
3389          </script>
3389
3390        </div>
3391      </div>
3392    </section>
3393
3394  </div>
3395<!-- PS PREMIUM HOMEPAGE HERO END -->
3396
3397      <main class="site-main">
3398
3399            <!-- PS V5 PROJECT PROMISES START -->
3400            <section class="ps-v5-promises" aria-label="Platinum Signs project delivery commitments">
3401              <div class="ps-v5-shell">
3402                <ul class="ps-v5-promises__grid" role="list">
3403                <li class="ps-v5-promise">
3404                  <span aria-hidden="true">01</span>
3405                  <strong>Responsive project support</strong>
3406                </li>
3407                <li class="ps-v5-promise">
3408                  <span aria-hidden="true">02</span>
3409                  <strong>Australia-wide coordination</strong>
3410                </li>
3411                <li class="ps-v5-promise">
3412                  <span aria-hidden="true">03</span>
3413                  <strong>Practical project advice</strong>
3414                </li>
3415                <li class="ps-v5-promise">
3416                  <span aria-hidden="true">04</span>
3417                  <strong>Artwork preflight</strong>
3418                </li>
3419                <li class="ps-v5-promise">
3420                  <span aria-hidden="true">05</span>
3421                  <strong>In-house production</strong>
3422                </li>
3423                </ul>
3424              </div>
3425            </section>
3426<!-- PS V5 PROJECT PROMISES END -->
3427            <!-- PS V5 DELIVERY START -->
3428            <section class="ps-v5-range" aria-labelledby="ps-v5-range-title">
3429              <div class="ps-v5-shell">
3430                <div class="ps-v5-range__heading">
3431                  <div>
3432                    <p class="ps-v5-eyebrow">Our range</p>
3433                    <h2 id="ps-v5-range-title">Explore custom business signage.</h2>
3434                    <p>See the signage used to identify businesses, brand spaces and guide visitors—from shopfront, office and illuminated signs to window graphics, wayfinding and fleet branding.</p>
3435                  </div>
3436                </div>
3437                <div class="ps-v5-range__grid">
3438                <a class="ps-v5-range-card" href="/shopfront-signage">
3439                  <span class="ps-v5-range-card__image">
3440                    <img src="/images/v5/range/shopfront-facade.webp" width="1000" height="476" alt="Shopfront &amp; Facade Signs" decoding="async" loading="lazy">
3441                  </span>
3442                  <span class="ps-v5-range-card__body">
3443                    <strong>Shopfront &amp; Facade Signs</strong>
3444                    <span>Bold exterior signage that makes a storefront impossible to miss—manufactured for a durable, professional finish.</span>
3445                    <span class="ps-v5-range-card__link">Explore <span aria-hidden="true">→</span></span>
3446                  </span>
3447                </a>
3448                <a class="ps-v5-range-card" href="/led-signs">
3449                  <span class="ps-v5-range-card__image">
3450                    <img src="/images/v5/range/3d-led-signs.webp" width="1000" height="476" alt="3D LED Signs" decoding="async" loading="lazy">
3451                  </span>
3452                  <span class="ps-v5-range-card__body">
3453                    <strong>3D LED Signs</strong>
3454                    <span>Illuminated dimensional letters and logos with premium halo-lit or face-lit finishes for branded spaces.</span>
3455                    <span class="ps-v5-range-card__link">Explore <span aria-hidden="true">→</span></span>
3456                  </span>
3457                </a>
3458                <a class="ps-v5-range-card" href="/office-signage">
3459                  <span class="ps-v5-range-card__image">
3460                    <img src="/images/v5/range/office-reception-signs.webp" width="1000" height="476" alt="Office &amp; Reception Signs" decoding="async" loading="lazy">
3461                  </span>
3462                  <span class="ps-v5-range-card__body">
3463                    <strong>Office &amp; Reception Signs</strong>
3464                    <span>Reception logos, feature walls and interior branding that establish the right impression on arrival.</span>
3465                    <span class="ps-v5-range-card__link">Explore <span aria-hidden="true">→</span></span>
3466                  </span>
3467                </a>
3468                <a class="ps-v5-range-card" href="/3d-lettering">
3469                  <span class="ps-v5-range-card__image">
3470                    <img src="/images/v5/range/3d-letters-logos.webp" width="1000" height="476" alt="3D Letters &amp; Logos" decoding="async" loading="lazy">
3471                  </span>
3472                  <span class="ps-v5-range-card__body">
3473                    <strong>3D Letters &amp; Logos</strong>
3474                    <span>Dimensional letters and logos in metal or acrylic for reception walls, facades and feature signage.</span>
3475                    <span class="ps-v5-range-card__link">Explore <span aria-hidden="true">→</span></span>
3476                  </span>
3477                </a>
3478                <a class="ps-v5-range-card" href="/lightbox-signs">
3479                  <span class="ps-v5-range-card__image">
3480                    <img src="/images/v5/range/lightbox-signs.webp" width="1000" height="476" alt="Lightbox Signs" decoding="async" loading="lazy">
3481                  </span>
3482                  <span class="ps-v5-range-card__body">
3483                    <strong>Lightbox Signs</strong>
3484                    <span>Bright, even-lit displays for shopfronts and interiors that keep brands visible throughout the day and night.</span>
3485                    <span class="ps-v5-range-card__link">Explore <span aria-hidden="true">→</span></span>
3486                  </span>
3487                </a>
3488                <a class="ps-v5-range-card" href="/retail-signage">
3489                  <span class="ps-v5-range-card__image">
3490                    <img src="/images/v5/range/shop-fitout-signage.webp" width="1000" height="476" alt="Shop Fit-Out Signage" decoding="async" loading="lazy">
3491                  </span>
3492                  <span class="ps-v5-range-card__body">
3493                    <strong>Shop Fit-Out Signage</strong>
3494                    <span>Coordinated signage packages for new stores and fit-outs, produced and installed to the project plan.</span>
3495                    <span class="ps-v5-range-card__link">Explore <span aria-hidden="true">→</span></span>
3496                  </span>
3497                </a>
3498                <a class="ps-v5-range-card" href="/window-decals">
3499                  <span class="ps-v5-range-card__image">
3500                    <img src="/images/v5/range/trade-printing.webp" width="1000" height="476" alt="Window Graphics &amp; Decals" decoding="async" loading="lazy">
3501                  </span>
3502                  <span class="ps-v5-range-card__body">
3503                    <strong>Window Graphics &amp; Decals</strong>
3504                    <span>Printed and cut window graphics for privacy, promotions, campaigns and branded business spaces.</span>
3505                    <span class="ps-v5-range-card__link">Explore <span aria-hidden="true">→</span></span>
3506                  </span>
3507                </a>
3508                <a class="ps-v5-range-card" href="/fleet-wrap">
3509                  <span class="ps-v5-range-card__image">
3510                    <img src="/images/v5/range/fleet-branding.webp" width="1000" height="476" alt="Fleet Branding" decoding="async" loading="lazy">
3511                  </span>
3512                  <span class="ps-v5-range-card__body">
3513                    <strong>Fleet Branding</strong>
3514                    <span>Commercial vehicle graphics that maintain one consistent identity across every vehicle in the fleet.</span>
3515                    <span class="ps-v5-range-card__link">Explore <span aria-hidden="true">→</span></span>
3516                  </span>
3517                </a>
3518                <a class="ps-v5-range-card" href="/wayfinding-signage">
3519                  <span class="ps-v5-range-card__image">
3520                    <img src="/images/v5/range/wayfinding-building-signs.webp" width="1000" height="476" alt="Wayfinding &amp; Building Signs" decoding="async" loading="lazy">
3521                  </span>
3522                  <span class="ps-v5-range-card__body">
3523                    <strong>Wayfinding &amp; Building Signs</strong>
3524                    <span>Directory, directional and building signage that guides people clearly and reinforces the surrounding brand.</span>
3525                    <span class="ps-v5-range-card__link">Explore <span aria-hidden="true">→</span></span>
3526                  </span>
3527                </a>
3528                </div>
3529              </div>
3530            </section>
3531<!-- PS V5 DELIVERY END -->
3532            <!-- PS HOMEPAGE PRODUCT INDEX START -->
3533              <details class="ps-home-product-index">
3534                <summary>
3535                  <span><strong>More about our custom signage range</strong><small>Project applications, materials and more product links</small></span>
3536                  <span aria-hidden="true">+</span>
3537                </summary>
3538                <div class="ps-home-product-index__content">
3539                  <div class="ps-home-product-index__copy">
3540                    <article><h3>Exterior and shopfront signage</h3><p>Building identification, fascia signs, illuminated letters, lightboxes and shopfront signage are planned around viewing distance, scale, access, materials and mounting so the finished sign suits both the brand and the building. When several sign types are needed, design, manufacturing, finishing and installation requirements can be coordinated as one business signage package for a single Sydney site or a repeatable Australian rollout.</p></article>
3541                    <article><h3>Office and corporate signage</h3><p>Reception signs, 3D letters and logos, wall graphics, window frosting, directories and internal wayfinding can be developed as one workplace package or documented for repeatable corporate signage across multiple locations.</p></article>
3542                    <article><h3>Safety and wayfinding signage</h3><p>Window graphics and decals, commercial wall graphics, privacy film, directional signs, statutory messages and safety signage help brand a space while making it easier for people to understand and navigate.</p></article>
3543                    <article><h3>Vehicle wraps and fleet branding</h3><p>Designed vehicle graphics, cut lettering and partial or full wraps extend a business identity onto cars, vans, trucks and commercial fleets, with artwork adapted to maintain consistency across different vehicles.</p></article>
3544                  </div>
3545                  <nav class="ps-home-product-index__links" aria-label="More signage products">
3546                    <a href="/business-signage">All business signage</a><a href="/building-signage">Building signage</a><a href="/corporate-signage">Corporate signage</a><a href="/acrylic-signs">Acrylic signs</a><a href="/wall-graphics">Wall graphics</a><a href="/safety-signs">Safety signs</a><a href="/floor-decals">Floor decals</a><a href="/vehicle-wrap">Vehicle wraps</a>
3547                  </nav>
3548                </div>
3549              </details>
3550<!-- PS HOMEPAGE PRODUCT INDEX END -->
3551    <section class="ps-v5-quote-section" id="ps-project-enquiry" aria-labelledby="ps-project-enquiry-title">
3552      <h2 class="ps-sr-only" id="ps-project-enquiry-title">Start your business signage project</h2>
3553      <div class="ps-v5-shell ps-v5-quote-layout">
3554        <figure class="ps-v5-quote-visual" aria-hidden="true" data-ps-quote-visual>
3555          <img class="ps-v5-quote-slide is-active" src="/images/homepage-quote/family-wayfinding-halo-pictogram.webp" width="1350" height="1800" alt="" decoding="async" loading="lazy" data-ps-quote-slide>
3556          <img class="ps-v5-quote-slide" data-src="/images/projects/one-buyers-agency-signage/one-buyers-agency-acrylic-office-signage-double-bay-828.webp" width="828" height="1104" alt="" decoding="async" data-ps-quote-slide>
3557          <img class="ps-v5-quote-slide" data-src="/images/projects/one-mile-retail-signage/one-mile-bondi-halo-lettering-entry-828.webp" width="828" height="1104" alt="" decoding="async" data-ps-quote-slide>
3558          <img class="ps-v5-quote-slide" data-src="/images/projects/aramco-workplace-signage/aramco-painted-metal-reception-lettering-sydney-1080.webp" width="1080" height="810" alt="" decoding="async" data-ps-quote-slide>
3559        </figure>
3560
3561        <div class="form_banner ps-premium-quote">
3562          <noscript><p class="ps-quote-noscript">JavaScript is required to send this secure form. Please <a href="tel:1300448608">call 1300 448 608</a> instead.</p></noscript>
3563          <form method="POST" action="/contact-send" enctype="multipart/form-data" class="ps-quote-form" data-ps-quote-flow hidden>
3564            <input type="hidden" name="_token" value="i4BznJ4qAsvLfIJ61wHDyfx6PiYzKESoH9JNvkDJ" />
3565            <input type="hidden" name="service" value="Homepage project enquiry">
3566
3567            <fieldset class="ps-quote-step" data-ps-quote-step="1" aria-describedby="ps-quote-step-1-help">
3568              <legend class="ps-sr-only">Project brief</legend>
3569              <div class="ps-quote-heading">
3570                <div>
3571                  <p class="ps-quote-eyebrow">Project brief</p>
3572                  <h3 id="ps-home-quote-title" tabindex="-1">What can we help with?</h3>
3573                </div>
3574                <p class="ps-quote-progress" aria-label="Step 1 of 2">1 of 2</p>
3575              </div>
3576              <p class="ps-quote-intro" id="ps-quote-step-1-help">
3576A sentence or two is enough. No technical terms needed.</p>
3577
3578              <div class="form-group ps-field ps-field--full">
3579                <label for="ps-quote-message">What do you need? <span aria-hidden="true">*</span></label>
3580                <textarea class="form-control" id="ps-quote-message" name="message" placeholder="What are you making, changing or installing? Add the location, sizes or timing if known." aria-describedby="ps-quote-message-error" required></textarea>
3581                <p class="ps-field-error" id="ps-quote-message-error" role="alert" hidden>Please tell us briefly what you need.</p>
3582              </div>
3583
3584              <details class="ps-quote-helper">
3585                <summary>Need help describing it?</summary>
3586                <div class="ps-quote-starters" aria-label="Project brief starting points">
3587                  <button type="button" data-ps-brief-starter="We’re opening or fitting out a location in [suburb] and need help with...">New location</button>
3588                  <button type="button" data-ps-brief-starter="We want to update, replace or add to the existing signage at...">Update existing signs</button>
3589                  <button type="button" data-ps-brief-starter="We need consistent signage across [number] locations, including...">Multi-site project</button>
3590                </div>
3591              </details>
3592
3593              <div class="form-group ps-field ps-field--full ps-upload-field">
3594                <label class="ps-upload-link" for="file"><span aria-hidden="true">+</span> Add files or photos <span class="ps-optional">Optional</span><input type="file" class="form-control" id="file" name="file[]" aria-describedby="ps-upload-hint ps-upload-status" accept=".pdf,.jpg,.jpeg,.png,.ai,.eps" multiple></label>
3595                <small id="ps-upload-hint">PDF, JPG, PNG, AI, EPS · 10 files max · sent with your enquiry.</small>
3596                <p class="ps-upload-status" id="ps-upload-status" aria-live="polite"></p>
3597                <div class="ps-upload-previews" id="ps-upload-previews" aria-label="Selected files" hidden></div>
3598              </div>
3599              <div id="addFile" class="ps-field--full"></div>
3600
3601              <button type="button" class="btn btn-primary ps-quote-continue" data-ps-quote-continue>Continue <span aria-hidden="true">→</span></button>
3602            </fieldset>
3603
3604            <fieldset class="ps-quote-step" data-ps-quote-step="2">
3605              <legend class="ps-sr-only">Contact details</legend>
3606              <div class="ps-quote-heading">
3607                <div>
3608                  <p class="ps-quote-eyebrow">Contact details</p>
3609                  <h3 id="ps-quote-contact-title" tabindex="-1">How should we contact you?</h3>
3610                </div>
3611                <p class="ps-quote-progress" aria-label="Step 2 of 2">2 of 2</p>
3612              </div>
3613
3614              <div class="ps-quote-summary">
3615                <p><strong>Project brief</strong><span data-ps-quote-summary>Your project description</span></p>
3616                <button type="button" data-ps-quote-edit>Edit</button>
3617              </div>
3618
3619              <div class="ps-quote-contact-grid">
3620                <div class="form-group ps-field">
3621                  <label for="ps-quote-name">Full name <span aria-hidden="true">*</span></label>
3622                  <input type="text" class="form-control" id="ps-quote-name" placeholder="Your name" name="name" autocomplete="name" required>
3623                </div>
3624                <div class="form-group ps-field">
3625                  <label for="ps-quote-email">Work email <span aria-hidden="true">*</span></label>
3626                  <input type="email" class="form-control" id="ps-quote-email" placeholder="[email protected]" name="email" autocomplete="email" required>
3627                </div>
3628                <div class="form-group ps-field">
3629                  <label for="ps-quote-phone">Phone <span class="ps-optional">Optional</span></label>
3630                  <input type="tel" class="form-control phone" id="ps-quote-phone" placeholder="Best contact number" name="phone" autocomplete="tel" inputmode="tel">
3631                </div>
3632                <div class="form-group ps-field">
3633                  <label for="ps-quote-company">Company <span class="ps-optional">Optional</span></label>
3634                  <input type="text" class="form-control" id="ps-quote-company" placeholder="Company name" name="company" autocomplete="organization">
3635                </div>
3636                <div class="form-group ps-field ps-field--full ps-locality-field">
3637                  <label for="ps-quote-postcode">Project location <span class="ps-optional">Optional</span></label>
3638                  <div class="ps-locality-control">
3639                    <input type="text" class="form-control" id="ps-quote-postcode" placeholder="Start typing a suburb or postcode" name="zipcode" autocomplete="off" role="combobox" aria-autocomplete="list" aria-expanded="false" aria-controls="ps-quote-locality-options" aria-describedby="ps-quote-locality-help ps-quote-locality-status">
3640                    <div class="ps-locality-options" id="ps-quote-locality-options" role="listbox" hidden></div>
3641                  </div>
3642                  <small id="ps-quote-locality-help">Australian suburb or postcode</small>
3643                  <span class="ps-sr-only" id="ps-quote-locality-status" aria-live="polite"></span>
3644                </div>
3645              </div>
3646
3647            </fieldset>
3648
3649            <div class="ps-quote-step-actions" data-ps-quote-final-actions>
3650              <button type="button" class="ps-quote-back" data-ps-quote-back>Back</button>
3651              <div class="form-group ps-submit-group">
3652                <button type="submit" class="btn btn-primary">Send enquiry <span aria-hidden="true">→</span></button>
3653              </div>
3654            </div>
3655          </form>
3656        </div>
3657      </div>
3658    </section>
3659
3660            <!-- PS HOMEPAGE PROJECT PROCESS START -->
3661            <section class="ps-home-process" aria-labelledby="ps-home-process-title">
3662              <div class="ps-v5-shell">
3663                <div class="ps-home-process__heading">
3664                  <div>
3665                    <p class="ps-v5-eyebrow">From brief to installation</p>
3666                    <h2 id="ps-home-process-title">Custom signage designed, manufactured and coordinated as one project.</h2>
3667                  </div>
3668                  <p>Platinum Signs is an Australian signage company supporting businesses, builders, architects, designers, agencies and project teams. We combine practical sign design, artwork preparation, in-house signage manufacturing and coordinated installation for single business signs and multi-site commercial signage programs across Australia. Through the online shop and managed projects, we deliver signage to Sydney, Melbourne and Brisbane, as well as Canberra, Adelaide, Perth and regional Australia.</p>
3669                </div>
3670                <div class="ps-home-process__grid">
3671                  <article class="ps-home-process-card">
3672                    <a class="ps-home-process-card__image" href="/creative-concept-design">
3673                      <img src="/images/projects/circular-quay-cruise-terminal-hoarding-graphics/mettle-hoarding-site-survey-measurements-1400.webp" width="1400" height="1050" alt="Site survey and measurements for custom signage in Sydney" decoding="async" loading="lazy">
3674                    </a>
3675                    <div class="ps-home-process-card__body">
3676                      <p class="ps-home-process-card__step">01 · Plan</p>
3677                      <h3>Signage design and project planning</h3>
3678                      <p>Start with a brand file, drawing, rough idea or site problem. We help turn it into a practical signage brief.</p>
3679                      <details>
3680                        <summary>What happens before production</summary>
3681                        <p>We clarify sign type, scale, materials, visibility, mounting, access and programme before production begins. Artwork is checked for legibility and manufacture, and recommendations are grounded in the real environment where the signage will be used. The aim is a sign design that looks right, can be produced accurately and is ready for the site.</p>
3682                      </details>
3683                      <a class="ps-home-process-card__link" href="/creative-concept-design">Explore signage design <span aria-hidden="true">→</span></a>
3684                    </div>
3685                  </article>
3686                  <article class="ps-home-process-card">
3687                    <a class="ps-home-process-card__image" href="/commercial-signage">
3688                      <img src="/images/homepage-process/patron-dimensional-lettering-production-1024.webp" width="1024" height="768" alt="Illuminated Patron 3D letters being assembled on a gold sign panel" decoding="async" loading="lazy">
3689                    </a>
3690                    <div class="ps-home-process-card__body">
3691                      <p class="ps-home-process-card__step">02 · Make</p>
3692                      <h3>Custom signage manufacturing</h3>
3693                      <p>Printing, cutting, fabrication and finishing are brought together to keep the finished signage consistent.</p>
3694                      <details>
3695                        <summary>Inside our production capability</summary>
3696                        <p>In-house signage manufacturing covers printed graphics, acrylic and metal signs, fabricated and illuminated lettering, shopfront and building signage, office and reception signs, wayfinding, safety signage and branded displays. 
3696Complementary laser, CNC, digital cutting, printing, welding, painting and finishing processes give project teams clearer control over fit, colour and quality.</p>
3697                      </details>
3698                      <a class="ps-home-process-card__link" href="/commercial-signage">Explore commercial signage <span aria-hidden="true">→</span></a>
3699                    </div>
3700                  </article>
3701                  <article class="ps-home-process-card">
3702                    <a class="ps-home-process-card__image" href="/signage-installation">
3703                      <img src="/images/projects/eda-acm-signage/eda-acm-panel-facade-installation-1086.webp" width="1086" height="1448" alt="Commercial building signage installation coordinated on site" decoding="async" loading="lazy">
3704                    </a>
3705                    <div class="ps-home-process-card__body">
3706                      <p class="ps-home-process-card__step">03 · Deliver</p>
3707                      <h3>Delivery and coordinated installation</h3>
3708                      <p>Each sign is prepared for collection, freight, another contractor or a coordinated site installation.</p>
3709                      <details>
3710                        <summary>How projects reach the site</summary>
3711                        <p>For a single site, signage installation is coordinated around access and site requirements. For multi-location projects, we can manage repeatable specifications, production batches, packing, freight and installation requirements across Australian locations while keeping the brand result consistent. The delivery model is confirmed against the actual project rather than assumed.</p>
3712                      </details>
3713                      <a class="ps-home-process-card__link" href="/signage-installation">Explore signage installation <span aria-hidden="true">→</span></a>
3714                    </div>
3715                  </article>
3716                </div>
3717              </div>
3718            </section>
3719<!-- PS HOMEPAGE PROJECT PROCESS END -->
3720            <!-- PS V5 CAPABILITIES START -->
3721            <section class="ps-v5-production" aria-labelledby="ps-v5-production-title">
3722              <div class="ps-v5-shell">
3723                <div class="ps-v5-range__heading">
3724                  <div>
3725                    <p class="ps-v5-eyebrow">In-house production</p>
3726                    <h2 id="ps-v5-production-title">Commercial signage manufacturing and production capabilities.</h2>
3727                    <p>Our in-house production capability supports both finished signs and the specialist components behind them. Printing, laser and CNC cutting, digital knife cutting, large-format 3D printing, fabrication, laser welding, marking and 2-pack painting can be combined to produce acrylic, aluminium, steel, ACM, timber, vinyl and composite signage with consistent control over fit and finish. Explore our <a href="/cutting-services">cutting and fabrication services</a> for a consolidated view of these capabilities.</p>
3728                  </div>
3729                </div>
3730                <div class="ps-v5-production__grid">
3731                <a class="ps-v5-range-card" href="/fiber-laser-cutting">
3732                  <span class="ps-v5-range-card__image">
3733                    <img src="/images/v5/production/fiber-laser-cutting.jpg" width="1000" height="666" alt="Fiber laser cutting sheet metal with a bright cutting spark" decoding="async" loading="lazy">
3734                  </span>
3735                  <span class="ps-v5-range-card__body">
3736                    <strong>Fiber Laser Cutting</strong>
3737                    <span>Sheet-metal cutting in stainless, aluminium and mild steel — crisp edges, tight tolerances and close nesting for repeatable parts and batch runs.</span>
3738                    <span class="ps-v5-range-card__link">Explore fiber laser <span aria-hidden="true">→</span></span>
3739                  </span>
3740                </a>
3741                <a class="ps-v5-range-card" href="/laser-cutting">
3742                  <span class="ps-v5-range-card__image">
3743                    <img src="/images/v5/production/co2-laser-cutting.jpg" width="1000" height="666" alt="CO2 laser cutting an acrylic sheet with a clean edge" decoding="async" loading="lazy">
3744                  </span>
3745                  <span class="ps-v5-range-card__body">
3746                    <strong>CO₂ Laser Cutting</strong>
3747                    <span>Fine cutting and engraving across acrylic, polycarbonate, plywood and MDF — smooth, display-grade edges on plastics and timber.</span>
3748                    <span class="ps-v5-range-card__link">Explore laser cutting <span aria-hidden="true">→</span></span>
3749                  </span>
3750                </a>
3751                <a class="ps-v5-range-card" href="/cnc-router-cutting">
3752                  <span class="ps-v5-range-card__image">
3753                    <img src="/images/v5/production/cnc-router-cutting.jpg" width="1000" height="666" alt="CNC router cutting a composite panel" decoding="async" loading="lazy">
3754                  </span>
3755                  <span class="ps-v5-range-card__body">
3756                    <strong>CNC Router Cutting</strong>
3757                    <span>Routing for ACM, aluminium, HDPE, timber and composites — cut, V-groove and engrave panels ready for fabrication and clean assembly.</span>
3758                    <span class="ps-v5-range-card__link">Explore CNC routing <span aria-hidden="true">→</span></span>
3759                  </span>
3760                </a>
3761                <a class="ps-v5-range-card" href="/digital-knife-cutting">
3762                  <span class="ps-v5-range-card__image">
3763                    <img src="/images/v5/production/knife-digital-cutting.jpg" width="1000" height="666" alt="Digital flatbed knife cutter working across a printed board" decoding="async" loading="lazy">
3764                  </span>
3765                  <span class="ps-v5-range-card__body">
3766                    <strong>Knife Digital Cutting</strong>
3767                    <span>Digital flatbed knife cutting for foam, rubber, vinyl and packaging board — through-cut, kiss-cut and crease for gaskets, inserts and batch production.</span>
3768                    <span class="ps-v5-range-card__link">Explore <span aria-hidden="true">→</span></span>
3769                  </span>
3770                </a>
3771                <a class="ps-v5-range-card" href="/3d-printing">
3772                  <span class="ps-v5-range-card__image">
3773                    <img src="/images/v5/production/3d-printing.jpg" width="1000" height="666" alt="Large-format 3D printer building a lattice form" decoding="async" loading="lazy">
3774                  </span>
3775                  <span class="ps-v5-range-card__body">
3776                    <strong>3D Printing</strong>
3777                    <span>Large-format additive printing for signage elements, interior detail, architectural features and brand activations.</span>
3778                    <span class="ps-v5-range-card__link">Explore <span aria-hidden="true">→</span></span>
3779                  </span>
3780                </a>
3781                <a class="ps-v5-range-card" href="/laser-welding">
3782                  <span class="ps-v5-range-card__image">
3783                    <img src="/images/v5/production/laser-welding.jpg" width="1000" height="666" alt="Laser welding a stainless steel assembly" decoding="async" loading="lazy">
3784                  </span>
3785                  <span class="ps-v5-range-card__body">
3786                    <strong>Laser Welding</strong>
3787                    <span>Precise, low-distortion welding for stainless, aluminium and steel — strong, clean joins on production-ready assemblies.</span>
3788                    <span class="ps-v5-range-card__link">Explore <span aria-hidden="true">→</span></span>
3789                  </span>
3790                </a>
3791                <a class="ps-v5-range-card" href="/2-pack-spray-painting">
3792                  <span class="ps-v5-range-card__image">
3793                    <img src="/images/v5/production/2-pack-spray-painting.jpg" width="1000" height="666" alt="Two-pack spray painting a panel in a spray booth" decoding="async" loading="lazy">
3794                  </span>
3795                  <span class="ps-v5-range-card__body">
3796                    <strong>2-Pack Spray Painting</strong>
3797                    <span>Automotive-grade 2-pack finishing for signage, architectural panels and fabricated work — durable, colour-matched and UV-stable.</span>
3798                    <span class="ps-v5-range-card__link">Explore 2-pack painting <span aria-hidden="true">→</span></span>
3799                  </span>
3800                </a>
3801                <a class="ps-v5-range-card" href="/laser-marking">
3802                  <span class="ps-v5-range-card__image">
3803                    <img src="/images/v5/production/laser-marking.jpg" width="1000" height="666" alt="Laser marking a logo into brushed stainless steel" decoding="async" loading="lazy">
3804                  </span>
3805                  <span class="ps-v5-range-card__body">
3806                    <strong>Laser Marking</strong>
3807                    <span>Permanent marking etched straight into metal — serial numbers, logos and compliance text that last the life of the part.</span>
3808                    <span class="ps-v5-range-card__link">Explore <span aria-hidden="true">→</span></span>
3809                  </span>
3810                </a>
3811                </div>
3812              </div>
3813            </section>
3814<!-- PS V5 CAPABILITIES END -->
3815
3816            <!-- PS V5 INDUSTRIES START -->
3817            <section class="ps-v5-industries" aria-labelledby="ps-v5-industries-title">
3818              <div class="ps-v5-shell">
3819                <div class="ps-v5-industries__heading">
3820                  <div>
3821                    <p class="ps-v5-eyebrow">Industries</p>
3822                    <h2 id="ps-v5-industries-title">Signage for buildings, workplaces, retail and public spaces.</h2>
3823                  </div>
3824                  <p>Start with the environment closest to your project, then combine identification, wayfinding, safety, privacy, promotional and branded signage around the way the site operates.</p>
3825                </div>
3826                <div class="ps-v5-industries__grid">
3827                <a class="ps-v5-industry-card" href="/retail-signage" style="--ps-industry-accent:#c2410c;--ps-industry-tint:#fff4ed">
3828                  <span class="ps-v5-industry-card__icon" aria-hidden="true">
3829                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M4 10h16l-1-5H5l-1 5zM6 10v10h12V10M9 14h6"></path></svg>
3830                  </span>
3831                  <span class="ps-v5-industry-card__title">Retail &amp; Shopfronts</span>
3832                  <span class="ps-v5-industry-card__copy">Shopfront signs, windows, decals and launch campaigns.</span>
3833                  <span class="ps-v5-industry-card__link">Explore sector <span aria-hidden="true">→</span></span>
3834                </a>
3835                <a class="ps-v5-industry-card" href="/construction-signage" style="--ps-industry-accent:#b45309;--ps-industry-tint:#fdf6ea">
3836                  <span class="ps-v5-industry-card__icon" aria-hidden="true">
3837                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M5 20h14M7 20l2-12h6l2 12M10 8V4h4v4"></path></svg>
3838                  </span>
3839                  <span class="ps-v5-industry-card__title">Construction</span>
3840                  <span class="ps-v5-industry-card__copy">Site safety, hoarding, project boards and branded environments.</span>
3841                  <span class="ps-v5-industry-card__link">Explore sector <span aria-hidden="true">→</span></span>
3842                </a>
3843                <a class="ps-v5-industry-card" href="/healthcare-signs" style="--ps-industry-accent:#1d4ed8;--ps-industry-tint:#eff6ff">
3844                  <span class="ps-v5-industry-card__icon" aria-hidden="true">
3845                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5v14M5 12h14M4 4h16v16H4z"></path></svg>
3846                  </span>
3847                  <span class="ps-v5-industry-card__title">Healthcare</span>
3848                  <span class="ps-v5-industry-card__copy">Clinic signage, compliance, directories and privacy graphics.</span>
3849                  <span class="ps-v5-industry-card__link">Explore sector <span aria-hidden="true">→</span></span>
3850                </a>
3851                <a class="ps-v5-industry-card" href="/workplace-signs" style="--ps-industry-accent:#334155;--ps-industry-tint:#f1f5f9">
3852                  <span class="ps-v5-industry-card__icon" aria-hidden="true">
3853                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16M2 20h20M11 7h2M11 11h2M11 15h2"></path></svg>
3854                  </span>
3855                  <span class="ps-v5-industry-card__title">Workplace</span>
3856                  <span class="ps-v5-industry-card__copy">Reception, wayfinding, walls, windows and office identity.</span>
3857                  <span class="ps-v5-industry-card__link">Explore sector <span aria-hidden="true">→</span></span>
3858                </a>
3859                <a class="ps-v5-industry-card" href="/franchise-signs" style="--ps-industry-accent:#047857;--ps-industry-tint:#ecfdf5">
3860                  <span class="ps-v5-industry-card__icon" aria-hidden="true">
3861                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h16M6 7v13h12V7M8 11h8M8 15h8"></path></svg>
3862                  </span>
3863                  <span class="ps-v5-industry-card__title">Franchise &amp; Rollouts</span>
3864                  <span class="ps-v5-industry-card__copy">Repeatable signage programs for multi-site brand standards.</span>
3865                  <span class="ps-v5-industry-card__link">Explore sector <span aria-hidden="true">→</span></span>
3866                </a>
3867                <a class="ps-v5-industry-card" href="/architectural-signs" style="--ps-industry-accent:#6d28d9;--ps-industry-tint:#f5f3ff">
3868                  <span class="ps-v5-industry-card__icon" aria-hidden="true">
3869                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21h18M5 21V7l7-4 7 4v14M9 10h6M9 14h6"></path></svg>
3870                  </span>
3871                  <span class="ps-v5-industry-card__title">Architectural</span>
3872                  <span class="ps-v5-industry-card__copy">Integrated signage for buildings, developments and public spaces.</span>
3873                  <span class="ps-v5-industry-card__link">Explore sector <span aria-hidden="true">→</span></span>
3874                </a>
3875                <a class="ps-v5-industry-card" href="/hotel-signs" style="--ps-industry-accent:#b91c1c;--ps-industry-tint:#fef2f2">
3876                  <span class="ps-v5-industry-card__icon" aria-hidden="true">
3877                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M17 11h1a3 3 0 0 1 0 6h-1M9 12a4 4 0 1 0 8 0V5H9zM3 21h18"></path></svg>
3878                  </span>
3879                  <span class="ps-v5-industry-card__title">Hospitality</span>
3880                  <span class="ps-v5-industry-card__copy">Venue branding, wayfinding, menus, rooms and guest spaces.</span>
3881                  <span class="ps-v5-industry-card__link">Explore sector <span aria-hidden="true">→</span></span>
3882                </a>
3883                <a class="ps-v5-industry-card" href="/corporate-signage" style="--ps-industry-accent:#0f766e;--ps-industry-tint:#eefaf8">
3884                  <span class="ps-v5-industry-card__icon" aria-hidden="true">
3885                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16M2 20h20M6 8H3v12M18 8h3v12"></path></svg>
3886                  </span>
3887                  <span class="ps-v5-industry-card__title">Corporate</span>
3888                  <span class="ps-v5-industry-card__copy">Workplace and national signage for organisations and project teams.</span>
3889                  <span class="ps-v5-industry-card__link">Explore sector <span aria-hidden="true">→</span></span>
3890                </a>
3891                </div>
3892              </div>
3893            </section>
3894<!-- PS V5 INDUSTRIES END -->
3895            <!-- PS HOMEPAGE SERVICE AREAS START -->
3896            <section class="ps-home-locations" aria-labelledby="ps-home-locations-title">
3897              <div class="ps-v5-shell">
3898                <div class="ps-home-locations__heading">
3899                  <div>
3900                    <p class="ps-v5-eyebrow">Where we work</p>
3901                    <h2 id="ps-home-locations-title">Signage Australia-wide, including Sydney, Melbourne and Brisbane.</h2>
3902                  </div>
3903                  <p>We work with businesses across Australia. Signs ordered through the online shop are made to order and delivered to any Australian address, and custom or multi-site projects have production, freight and installation planned for each site. Choose a city below for local signage, or see national rollouts for programs that span several states.</p>
3904                </div>
3905                <div class="ps-home-locations__layout">
3906                  <div class="ps-home-locations__mosaic" aria-label="Selected Platinum Signs projects in Australia">
3907                    <a class="ps-home-location-image ps-home-location-image--feature" href="/signage-sydney">
3908                      <img src="/images/projects/hali-shopfront-signage-alexandria/hali-round-light-box-corner-pier-sydney-1000.webp" srcset="/images/projects/hali-shopfront-signage-alexandria/hali-round-light-box-corner-pier-sydney-640.webp 640w, /images/projects/hali-shopfront-signage-alexandria/hali-round-light-box-corner-pier-sydney-828.webp 828w, /images/projects/hali-shopfront-signage-alexandria/hali-round-light-box-corner-pier-sydney-1000.webp 1000w" sizes="(max-width: 920px) 100v
3908w, 36vw" width="1000" height="1333" alt="Hali illuminated projecting lightbox on an Alexandria shopfront in Sydney" decoding="async" loading="lazy">
3909                      <span><small>Sydney</small><strong>Shopfront and building signage</strong></span>
3910                    </a>
3911                    <a class="ps-home-location-image" href="/signage-canberra">
3912                      <img src="/images/projects/power-golf-retail-signage/titleist-department-illuminated-sign-1080.webp" srcset="/images/projects/power-golf-retail-signage/titleist-department-illuminated-sign-640.webp 640w, /images/projects/power-golf-retail-signage/titleist-department-illuminated-sign-828.webp 828w, /images/projects/power-golf-retail-signage/titleist-department-illuminated-sign-1080.webp 1080w, /images/projects/power-golf-retail-signage/titleist-department-illuminated-sign-1600.webp 1600w" sizes="(max-width: 620px) 100vw, 20vw" width="1080" height="810" alt="Illuminated Titleist retail department signage in Fyshwick, Canberra" decoding="async" loading="lazy">
3913                      <span><small>Canberra</small><strong>Retail and workplace signage</strong></span>
3914                    </a>
3915                    <a class="ps-home-location-image" href="/national-roll-out-signage">
3916                      <img src="/images/projects/lounge-lovers-birthday-sale-window-graphics/lounge-lovers-birthday-heritage-arches-panel-1050.webp" srcset="/images/projects/lounge-lovers-birthday-sale-window-graphics/lounge-lovers-birthday-heritage-arches-panel-640.webp 640w, /images/projects/lounge-lovers-birthday-sale-window-graphics/lounge-lovers-birthday-heritage-arches-panel-828.webp 828w, /images/projects/lounge-lovers-birthday-sale-window-graphics/lounge-lovers-birthday-heritage-arches-panel-1050.webp 1050w" sizes="(max-width: 620px) 100vw, 20vw" width="1050" height="1400" alt="Lounge Lovers sale campaign window graphics on a heritage showroom" decoding="async" loading="lazy">
3917                      <span><small>National programs</small><strong>Consistent signage across locations</strong></span>
3918                    </a>
3919                  </div>
3920                  <div class="ps-home-locations__details">
3921                  <details class="ps-home-location-detail" open>
3922                    <summary><span>Australia-wide</span><span aria-hidden="true">+</span></summary>
3923                    <div><p>Order custom signs online with instant prices and delivery anywhere in Australia, or brief us on a managed project. National programs keep one specification, controlled artwork and production batches, with freight and installation planned site by site, including Perth, Hobart, Darwin and regional areas.</p><a href="/national-roll-out-signage">Explore national rollout signage <span aria-hidden="true">→</span></a></div>
3924                  </details>
3925                  <details class="ps-home-location-detail">
3926                    <summary><span>Sydney</span><span aria-hidden="true">+</span></summary>
3927                    <div><p>Our Botany head office and production facility supports signage projects throughout Sydney, including the CBD, Eastern Suburbs, Inner West, North Shore and Western suburbs.</p><a href="/signage-sydney">Explore Sydney signage <span aria-hidden="true">→</span></a></div>
3928                  </details>
3929                  <details class="ps-home-location-detail">
3930                    <summary><span>Melbourne &amp; Victoria</span><span aria-hidden="true">+</span></summary>
3931                    <div><p>Commercial signage, workplace branding and multi-site project support across Melbourne and Victoria, with delivery and installation coordinated to suit the site programme.</p><a href="/signage-melbourne">Explore Melbourne &amp; Victoria signage <span aria-hidden="true">→</span></a></div>
3932                  </details>
3933                  <details class="ps-home-location-detail">
3934                    <summary><span>Brisbane &amp; Queensland</span><span aria-hidden="true">+</span></summary>
3935                    <div><p>Project signage and national-program support for Brisbane and Queensland locations, manufactured to an agreed specification and planned for delivery or installation.</p><a href="/signage-brisbane">Explore Brisbane &amp; Queensland signage <span aria-hidden="true">→</span></a></div>
3936                  </details>
3937                  <details class="ps-home-location-detail">
3938                    <summary><span>Canberra &amp; ACT</span><span aria-hidden="true">+</span></summary>
3939                    <div><p>
3939Signage for offices, government, construction, education, retail and public environments across Canberra and the ACT, from individual signs to coordinated packages.</p><a href="/signage-canberra">Explore Canberra &amp; ACT signage <span aria-hidden="true">→</span></a></div>
3940                  </details>
3941                  <details class="ps-home-location-detail">
3942                    <summary><span>Adelaide &amp; South Australia</span><span aria-hidden="true">+</span></summary>
3943                    <div><p>Consistent commercial signage supplied for Adelaide and South Australian sites, including work that forms part of a broader national rollout or rebrand.</p><a href="/signage-adelaide">Explore Adelaide &amp; South Australia signage <span aria-hidden="true">→</span></a></div>
3944                  </details>
3945                  <details class="ps-home-location-detail">
3946                    <summary><span>Gold Coast</span><span aria-hidden="true">+</span></summary>
3947                    <div><p>Retail, hospitality, development, workplace and building signage for Gold Coast projects, supported by our Robina location and wider production capability.</p><a href="/signage-gold-coast">Explore Gold Coast signage <span aria-hidden="true">→</span></a></div>
3948                  </details>
3949                  <details class="ps-home-location-detail">
3950                    <summary><span>Newcastle &amp; regional NSW</span><span aria-hidden="true">+</span></summary>
3951                    <div><p>Custom business signage for Newcastle and regional NSW, with project scoping, manufacture, delivery and installation requirements coordinated from the same brief.</p><a href="/signage-newcastle">Explore Newcastle &amp; regional NSW signage <span aria-hidden="true">→</span></a></div>
3952                  </details>
3953                  </div>
3954                </div>
3955              </div>
3956            </section>
3957<!-- PS HOMEPAGE SERVICE AREAS END -->
3958
3959            
3960
3961            <!-- PS HOMEPAGE BLOG DISPLAY REMOVED; BLOG ROUTES RETAINED -->
3962            <!-- PS TRUSTED BRANDS START -->
3963            <section class="ps-v5-proof" aria-labelledby="ps-v5-proof-title">
3964              <div class="ps-v5-shell">
3965                <div class="ps-v5-proof__heading">
3966                  <div>
3967                    <p class="ps-v5-eyebrow">Trusted by</p>
3968                    <h2 id="ps-v5-proof-title">Proven with major brands and national organisations.</h2>
3969                  </div>
3970                  <p>Platinum Signs supports retail, property, construction, infrastru
3970cture, hospitality, workplace, government, education and corporate clients across Australia.</p>
3971                </div>
3972                <div class="ps-v5-proof__logos" aria-label="Selected Platinum Signs clients">
3973              <div class="ps-trusted-brands__card">
3974                <img src="/images/client-logos/google.png" alt="Google logo" loading="lazy" decoding="async" class="ps-trusted-brands__logo" style="height:30px;max-width:120px">
3975              </div>
3976              <div class="ps-trusted-brands__card">
3977                <img src="/images/client-logos/university-of-melbourne.png" alt="University of Melbourne logo" loading="lazy" decoding="async" class="ps-trusted-brands__logo" style="height:58px;max-width:150px">
3978              </div>
3979              <div class="ps-trusted-brands__card">
3980                <img src="/images/client-logos/publicis-groupe.webp" alt="Publicis Groupe logo" loading="lazy" decoding="async" class="ps-trusted-brands__logo" style="height:56px;max-width:130px">
3981              </div>
3982              <div class="ps-trusted-brands__card">
3983                <img src="/images/client-logos/toll-group.svg" alt="Toll logo" loading="lazy" decoding="async" class="ps-trusted-brands__logo" style="height:30px;max-width:120px">
3984              </div>
3985              <div class="ps-trusted-brands__card">
3986                <img src="/images/client-logos/nsw-government.svg" alt="NSW Government logo" loading="lazy" decoding="async" class="ps-trusted-brands__logo" style="height:54px;max-width:120px">
3987              </div>
3988              <div class="ps-trusted-brands__card">
3989                <img src="/images/client-logos/telstra.svg" alt="Telstra logo" loading="lazy" decoding="async" class="ps-trusted-brands__logo" style="height:34px;max-width:130px">
3990              </div>
3991              <div class="ps-trusted-brands__card">
3992                <img src="/images/client-logos/amazon.svg" alt="Amazon logo" loading="lazy" decoding="async" class="ps-trusted-brands__logo" style="height:28px;max-width:120px">
3993              </div>
3994              <div class="ps-trusted-brands__card">
3995                <img src="/images/client-logos/accor-all.svg" alt="Accor logo" loading="lazy" decoding="async" class="ps-trusted-brands__logo" style="height:48px;max-width:110px">
3996              </div>
3997              <div class="ps-trusted-brands__card">
3998                <img src="/images/client-logos/meriton.svg" alt="Meriton logo" loading="lazy" decoding="async" class="ps-trusted-brands__logo" style="height:50px;max-width:130px">
3999              </div>
4000              <div class="ps-trusted-brands__card">
4001                <img src="/images/client-logos/cpb-contractors.svg" alt="CPB Contractors logo" loading="lazy" decoding="async" class="ps-trusted-brands__logo" style="height:46px;max-width:120px">
4002              </div>
4003              <div class="ps-trusted-brands__card">
4004                <img src="/images/client-logos/csr-tight.svg" alt="CSR logo" loading="lazy" decoding="async" class="ps-trusted-brands__logo" style="height:32px;max-width:120px">
4005              </div>
4006              <div class="ps-trusted-brands__card">
4007                <img src="/images/client-logos/mts-metro-trains-sydney.png" alt="Metro Trains Sydney logo" loading="lazy" decoding="async" class="ps-trusted-brands__logo" style="height:44px;max-width:150px">
4008              </div>
4009                </div>
4010              </div>
4011              <div class="ps-trusted-stats ps-v5-proof__stats" aria-label="Platinum Signs experience and capability">
4012                <div class="ps-v5-shell ps-trusted-stats__inner">
4013                  <div class="ps-trusted-stats__grid">
4014                    <div class="ps-trusted-stats__item">
4015                      <p class="ps-trusted-stats__value"><span class="ps-count-up" data-value="20+">20+</span></p>
4016                      <p class="ps-trusted-stats__label">Years in operation</p>
4017                      <p class="ps-trusted-stats__copy">Working with organisations across Australia.</p>
4018                    </div>
4019                    <div class="ps-trusted-stats__item">
4020                      <p class="ps-trusted-stats__value"><span class="ps-count-up" data-value="6,500+">6,500+</span></p>
4021                      <p class="ps-trusted-stats__label">Completed projects</p>
4022                      <p class="ps-trusted-stats__copy">
4022Across retail, property, infrastructure and workplaces.</p>
4023                    </div>
4024                    <div class="ps-trusted-stats__item">
4025                      <p class="ps-trusted-stats__value"><span class="ps-count-up" data-value="9">9</span></p>
4026                      <p class="ps-trusted-stats__label">Production technologies</p>
4027                      <p class="ps-trusted-stats__copy">Cutting, printing and finishing capabilities in-house.</p>
4028                    </div>
4029                  </div>
4030                </div>
4031              </div>
4032              <div class="ps-v5-shell ps-v5-reviews">
4033                <div class="ps-v5-reviews__heading">
4034                  <div>
4035                    <p class="ps-v5-eyebrow">Client reviews</p>
4036                    <h2>What clients say about working with Platinum Signs.</h2>
4037                  </div>
4038                  <div class="ps-v5-reviews__summary">
4039                    <span role="img" aria-label="Rated 5 out of 5 stars">★★★★★</span>
4040                    <strong>179+ Google reviews</strong>
4041                    <a href="/signage-company-customers-reviews">Read more reviews <span aria-hidden="true">→</span></a>
4042                  </div>
4043                </div>
4044                <div class="ps-v5-reviews__grid">
4045              <figure class="ps-v5-review">
4046                <span class="ps-v5-review__stars" aria-label="Rated 5 out of 5 stars">★★★★★</span>
4047                <blockquote>&ldquo;I have worked with Platinum Signs for years and I can only say one thing: they live up to their name! It is rare to find a company that has the capability to become a true extension of your business.&rdquo;</blockquote>
4048                <figcaption><strong>Matt Soltau</strong><span>Google review</span></figcaption>
4049              </figure>
4050              <figure class="ps-v5-review">
4051                <span class="ps-v5-review__stars" aria-label="Rated 5 out of 5 stars">★★★★★</span>
4052                <blockquote>&ldquo;The communication of Platinum Signs was just amazing, as was the finished product. Our client was immensely pleased at how the architect's drawings were brought to life. We have already recommended Platinum Signs to our other clients.&rdquo;</blockquote>
4053                <figcaption><strong>Shawna Copas</strong><span>Google review</span></figcaption>
4054              </figure>
4055              <figure class="ps-v5-review">
4056                <span class="ps-v5-review__stars" aria-label="Rated 5 out of 5 stars">★★★★★</span>
4057                <blockquote>&ldquo;I've worked with Platinum Signs on two projects now and both have definitely exceeded my expectations. Yago and the team have consistently delivered.&rdquo;</blockquote>
4058                <figcaption><strong>Jodie Tarasek</strong><span>Google review</span></figcaption>
4059              </figure>
4060                </div>
4061              </div>
4062              
4062<script defer src="/js/ps-trusted-brands.js"></script>
4062
4063            </section>
4064<!-- PS TRUSTED BRANDS END -->
4065            <!-- PS V5 VIDEO SHOWCASE START -->
4066            <section class="ps-v5-videos" aria-labelledby="ps-v5-videos-title">
4067              <div class="ps-v5-shell">
4068                <div class="ps-v5-videos__heading">
4069                  <div>
4070                    <p class="ps-v5-eyebrow">From our workshop</p>
4071                    <h2 id="ps-v5-videos-title">See our custom signs being made.</h2>
4072                    <p>Real printing, cutting and fabrication processes from the Platinum Signs production team.</p>
4073                  </div>
4074                  <a href="https://www.youtube.com/@PlatinumSigns-i5z" target="_blank" rel="noopener noreferrer">Watch more on YouTube <span aria-hidden="true">↗</span></a>
4075                </div>
4076                <div class="ps-v5-videos__grid">
4077              <article class="ps-v5-video-card">
4078                <button type="button" class="ps-v5-video-card__button" data-youtube-id="bPM4K3pJ2Gs" data-youtube-title="3D LED acrylic letters for Meriton Suites">
4079                  <img src="https://i.ytimg.com/vi/bPM4K3pJ2Gs/hqdefault.jpg" width="480" height="360" alt="3D LED acrylic letters for Meriton Suites" loading="lazy" decoding="async">
4080                  <span class="ps-v5-video-card__shade" aria-hidden="true"></span>
4081                  <span class="ps-v5-video-card__play" aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M8 5v14l11-7z"></path></svg></span>
4082                  <span class="ps-v5-video-card__caption"><small>Illuminated letters</small><strong>3D LED acrylic letters for Meriton Suites</strong></span>
4083                </button>
4084              </article>
4085              <article class="ps-v5-video-card">
4086                <button type="button" class="ps-v5-video-card__button" data-youtube-id="G0R-PCy-JnY" data-youtube-title="Fabricated 3D metal letters">
4087                  <img src="https://i.ytimg.com/vi/G0R-PCy-JnY/hqdefault.jpg" width="480" height="360" alt="Fabricated 3D metal letters" loading="lazy" decoding="async">
4088                  <span class="ps-v5-video-card__shade" aria-hidden="true"></span>
4089                  <span class="ps-v5-video-card__play" aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M8 5v14l11-7z"></path></svg></span>
4090                  <span class="ps-v5-video-card__caption"><small>Metal fabrication</small><strong>Fabricated 3D metal letters</strong></span>
4091                </button>
4092              </article>
4093              <article class="ps-v5-video-card">
4094                <button type="button" class="ps-v5-video-card__button" data-youtube-id="yv3oR91j_6Y" data-youtube-title="UV direct printing on fibre cement">
4095                  <img src="https://i.ytimg.com/vi/yv3oR91j_6Y/hqdefault.jpg" width="480" height="360" alt="UV direct printing on fibre cement" loading="lazy" decoding="async">
4096                  <span class="ps-v5-video-card__shade" aria-hidden="true"></span>
4097                  <span class="ps-v5-video-card__play" aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M8 5v14l11-7z"></path></svg></span>
4098                  <span class="ps-v5-video-card__caption"><small>UV printing</small><strong>UV direct printing on fibre cement</strong></span>
4099                </button>
4100              </article>
4101              <article class="ps-v5-video-card">
4102                <button type="button" class="ps-v5-video-card__button" data-youtube-id="VeEmWEtiaRU" data-youtube-title="CO2 laser cutting 4mm plywood">
4103                  <img src="https://i.ytimg.com/vi/VeEmWEtiaRU/hqdefault.jpg" width="480" height="360" alt="CO2 laser cutting 4mm plywood" loading="lazy" decoding="async">
4104                  <span class="ps-v5-video-card__shade" aria-hidden="true"></span>
4105                  <span class="ps-v5-video-card__play" aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M8 5v14l11-7z"></path></svg></span>
4106                  <span class="ps-v5-video-card__caption"><small>Laser cutting</small><strong>CO2 laser cutting 4mm plywood</strong></span>
4107                </button>
4108              </article>
4109              <article class="ps-v5-video-card">
4110                <button type="button" class="ps-v5-video-card__button" data-youtube-id="tfWr5cvD4w8" data-youtube-title="Precision-cut felt acoustic panels">
4111                  <img src="https://i.ytimg.com/vi/tfWr5cvD4w8/hqdefault.jpg" width="480" height="360" alt="Precision-cut felt acoustic panels" loading="lazy" decoding="async">
4112                  <span class="ps-v5-video-card__shade" aria-hidden="true"></span>
4113                  <span class="ps-v5-video-card__play" aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M8 5v14l11-7z"></path></svg></span>
4114                  <span class="ps-v5-video-card__caption"><small>CNC routing</small><strong>Precision-cut felt acoustic panels</strong></span>
4115                </button>
4116              </article>
4117              <article class="ps-v5-video-card">
4118                <button type="button" class="ps-v5-video-card__button" data-youtube-id="3yKB2tqEvAs" data-youtube-title="Digitally cut floor graphics">
4119                  <img src="https://i.ytimg.com/vi/3yKB2tqEvAs/hqdefault.jpg" width="480" height="360" alt="Digitally cut floor graphics" loading="lazy" decoding="async">
4120                  <span class="ps-v5-video-card__shade" aria-hidden="true"></span>
4121                  <span class="ps-v5-video-card__play" aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M8 5v14l11-7z"></path></svg></span>
4122                  <span class="ps-v5-video-card__caption"><small>Digital cutting</small><strong>Digitally cut floor graphics</strong></span>
4123                </button>
4124              </article>
4125</div>
4126              </div>
4127              
4127<script>
4128                (function () {
4129                  document.querySelectorAll('.ps-v5-video-card__button[data-youtube-id]').forEach(function (button) {
4130                    button.addEventListener('click', function () {
4131                      var id = button.getAttribute('data-youtube-id');
4132                      var title = button.getAttribute('data-youtube-title') || 'Platinum Signs workshop video';
4133                      var iframe = document.createElement('iframe');
4134                      iframe.src = 'https://www.youtube-nocookie.com/embed/' + encodeURIComponent(id) + '?autoplay=1&rel=0&modestbranding=1';
4135                      iframe.title = title;
4136                      iframe.allow = 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture';
4137                      iframe.allowFullscreen = true;
4138                      iframe.className = 'ps-v5-video-card__iframe';
4139                      button.replaceWith(iframe);
4140                    }, { once: true });
4141                  });
4142                })();
4143              </script>
4143
4144            </section>
4145<!-- PS V5 VIDEO SHOWCASE END -->
4146            <!-- PS V5 CLOSING CTA START -->
4147            <section class="ps-v5-closing" aria-labelledby="ps-v5-closing-title">
4148              <div class="ps-v5-shell ps-v5-closing__inner">
4149                <div>
4150                  <p class="ps-v5-eyebrow">Ready when you are</p>
4151                  <h2 id="ps-v5-closing-title">Start a business signage project or shop online.</h2>
4152                  <p>Use the project form for designed, manufactured and installed signage, or visit the online shop for products currently available to configure with online pricing.</p>
4153                </div>
4154                <div class="ps-v5-closing__actions">
4155                  <a class="ps-v5-button ps-v5-button--primary" href="#ps-project-enquiry">Start your project brief <span aria-hidden="true">→</span></a>
4156                  <a class="ps-v5-button ps-v5-button--secondary" href="/shop">Visit the online shop</a>
4157                  <p>Project support and online ordering, both backed by Platinum Signs.</p>
4158                </div>
4159              </div>
4160            </section>
4161<!-- PS V5 CLOSING CTA END -->
4162            
4163
4164
4165        </main><!-- site-main end-->    
4166
4167      
4168      <!-- footer start -->
4169    <!-- PS PREMIUM SHARED FOOTER START -->
4170<footer class="ps-premium-footer" aria-label="Site footer" itemscope itemtype="https://schema.org/Organization">
4171  <meta itemprop="name" content="Platinum Signs">
4172  <meta itemprop="url" content="https://www.platinumsigns.com.au/">
4173  <div class="ps-premium-footer__inner">
4174    <div class="ps-premium-footer__main">
4175      <section class="ps-premium-footer__brand" aria-labelledby="ps-footer-brand-title">
4176        <a class="ps-premium-footer__logo" href="/" aria-label="Platinum Signs homepage" itemprop="url">
4177          <img src="/images/logo-white.png" width="183" height="45" alt="Platinum Signs" loading="lazy" decoding="async" itemprop="logo">
4178        </a>
4179        <p class="ps-premium-footer__eyebrow">Platinum Signs · Australia-wide</p>
4180        <h2 id="ps-footer-brand-title">Commercial signage, produced and coordinated properly.</h2>
4181        <p class="ps-premium-footer__brand-copy" itemprop="description">In-house production for branded spaces, fit-outs and multi-site signage projects, with installation coordinated across Australia.</p>
4182        <div class="ps-premium-footer__actions">
4183          <a class="ps-premium-footer__button" href="/contact-us">Start a project&nbsp; →</a>
4184          <meta itemprop="telephone" content="1300 448 608"><a class="ps-premium-footer__phone" href="tel:1300448608" aria-label="Call 1300 448 608">Call 1300 448 608</a>
4185        </div>
4186        <nav class="ps-premium-footer__socials" aria-label="Platinum Signs social media">
4187          <a href="https://www.facebook.com/platinumsignsaustralia" target="_blank" rel="noopener noreferrer" aria-label="Platinum Signs on Facebook">
4188            <svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M14 8.5V7c0-.8.5-1 1-1h2V2.2L14.1 2C10.9 2 9 3.9 9 7v1.5H6V13h3v9h5v-9h3.4l.6-4.5H14Z"/></svg>
4189          </a>
4190          <a href="https://www.instagram.com/platinum_signs/" target="_blank" rel="noopener noreferrer" aria-label="Platinum Signs on Instagram">
4191            <svg viewBox="0 0 24 24" aria-hidden="true"><rect x="3" y="3" width="18" height="18" rx="5" fill="none" stroke="currentColor" stroke-width="2"/><circle cx="12" cy="12" r="4.2" fill="none" stroke="currentColor" stroke-width="2"/><circle cx="17.4" cy="6.7" r="1.2" fill="currentColor"/></svg>
4192          </a>
4193          <a href="https://www.linkedin.com/company/platinum-signs-australia/" target="_blank" rel="noopener noreferrer" aria-label="Platinum Signs on LinkedIn">
4194            <svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M5.4 7.8H1.8V22h3.6V7.8ZM3.6 2A2.1 2.1 0 1 0 3.6 6.2 2.1 2.1 0 0 0 3.6 2ZM22 13.9c0-4.3-2.3-6.3-5.4-6.3-2.5 0-3.6 1.4-4.2 2.3V7.8H8.8V22h3.6v-7c0-1.8.4-3.6 2.7-3.6 2.3 0 2.3 2.1 2.3 3.7V22H22v-8.1Z"/></svg>
4195          </a>
4196        </nav>
4197      </section>
4198
4199      <details class="ps-premium-footer__nav-group" open>
4200<summary>Signage <span class="ps-premium-footer__nav-toggle" aria-hidden="true">+</span></summary>
4201<ul class="ps-premium-footer__nav-list">
4202<li><a href="/3d-signs">3D signs</a></li>
4203<li><a href="/3d-lettering">3D lettering</a></li>
4204<li><a href="/acrylic-signs">Acrylic signs</a></li>
4205<li><a href="/backlit-signs">Backlit signs</a></li>
4206<li><a href="/lightbox-signs">Lightbox signs</a></li>
4207<li><a href="/neon-signs">Neon signs</a></li>
4208<li><a href="/building-signage">Building signage</a></li>
4209<li><a href="/shopfront-signage">Shopfront signage</a></li>
4210<li><a href="/corporate-signage">Corporate signage</a></li>
4211<li><a href="/display-signage">Display signage</a></li>
4212<li><a href="/bus-wrap">Bus wraps</a></li>
4213<li><a href="/fleet-wrap">Fleet wraps</a></li>
4214<li class="ps-premium-footer__nav-more"><a href="/business-signage">View all signage <span aria-hidden="true">→</span></a></li>
4215</ul>
4216</details>
4217
4218<details class="ps-premium-footer__nav-group" open>
4219<summary>Industries <span class="ps-premium-footer__nav-toggle" aria-hidden="true">+</span></summary>
4220<ul class="ps-premium-footer__nav-list">
4221<li><a href="/retail-signage">Retail signage</a></li>
4222<li><a href="/construction-signage">Construction signage</a></li>
4223<li><a href="/real-estate-signage">Real estate signage</a></li>
4224<li><a href="/restaurant-cafe-signage">Restaurant &amp; café signage</a></li>
4225<li><a href="/school-signage">Education signage</a></li>
4226<li><a href="/hotel-signs">Hotel signage</a></li>
4227<li><a href="/architectural-signage">Architectural signage</a></li>
4228<li><a href="/event-signage">Event signage</a></li>
4229<li class="ps-premium-footer__nav-more"><a href="/industries-signage">View all industries <span aria-hidden="true">→</span></a></li>
4230</ul>
4231</details>
4232
4233<details class="ps-premium-footer__nav-group" open>
4234<summary>Fabrication <span class="ps-premium-footer__nav-toggle" aria-hidden="true">+</span></summary>
4235<ul class="ps-premium-footer__nav-list">
4236<li><a href="/fiber-laser-cutting">Fiber laser cutting</a></li>
4237<li><a href="/laser-cutting">CO₂ laser cutting</a></li>
4238<li><a href="/cnc-router-cutting">CNC router cutting</a></li>
4239<li><a href="/digital-knife-cutting">Knife digital cutting</a></li>
4240<li><a href="/3d-printing">3D printing</a></li>
4241<li><a href="/laser-welding">Laser welding</a></li>
4242<li><a href="/2-pack-spray-painting">2-pack spray painting</a></li>
4243<li><a href="/laser-marking">Laser marking</a></li>
4244<li class="ps-premium-footer__nav-more"><a href="/cutting-services">View all fabrication <span aria-hidden="true">→</span></a></li>
4245</ul>
4246</details>
4247
4248<details class="ps-premium-footer__nav-group" open>
4249<summary>Company <span class="ps-premium-footer__nav-toggle" aria-hidden="true">+</span></summary>
4250<ul class="ps-premium-footer__nav-list">
4251<li><a href="/signage-company-near-me">About</a></li>
4252<li><a href="/projects">Projects</a></li>
4253<li><a href="/creative-concept-design">Creative concept &amp; design</a></li>
4254<li><a href="/signage-installation">Signage installation</a></li>
4255<li><a href="/shop">Shop online</a></li>
4256<li><a href="/signage-company-customers-reviews">Reviews</a></li>
4257<li><a href="/blog">Blog</a></li>
4258<li><a href="/signage-faq">FAQs</a></li>
4259<li><a href="/artwork-specifications">Artwork specifications</a></li>
4260<li><a href="/contact-us">Contact</a></li>
4261<li><a href="https://portal.platinumsigns.com.au/login">Client sign in</a></li>
4262</ul>
4263</details>
4264
4265      <section class="ps-premium-footer__locations" aria-labelledby="ps-footer-locations-title">
4266        <div class="ps-premium-footer__locations-head">
4267          <h2 id="ps-footer-locations-title">Our locations</h2>
4268        </div>
4269        <div class="ps-premium-footer__location-grid">
4270          <article class="ps-premium-footer__location">
4271            <div class="ps-premium-footer__location-title"><h3>Sydney</h3><span class="ps-premium-footer__location-type">Head office</span></div>
4272            <address>Unit 4, 7 Erith Street, Botany NSW 2019</address>
4273          </article>
4274          <article class="ps-premium-footer__location">
4275            <div class="ps-premium-footer__location-title"><h3>Sydney</h3><span class="ps-premium-footer__location-type">CBD</span></div>
4276            <address>
4276Suite 207, Level 2, 661-663 George St, Haymarket NSW 2000</address>
4277          </article>
4278          <article class="ps-premium-footer__location">
4279            <div class="ps-premium-footer__location-title"><h3>Melbourne</h3><span class="ps-premium-footer__location-type">CBD</span></div>
4280            <address>Level 8, Suite 805, 220 Collins St, Melbourne VIC 3000</address>
4281          </article>
4282          <article class="ps-premium-footer__location">
4283            <div class="ps-premium-footer__location-title"><h3>Canberra</h3><span class="ps-premium-footer__location-type">Civic</span></div>
4284            <address>Unit 4, 20 Garema Pl, Canberra ACT 2601</address>
4285          </article>
4286          <article class="ps-premium-footer__location">
4287            <div class="ps-premium-footer__location-title"><h3>Gold Coast</h3><span class="ps-premium-footer__location-type">Robina</span></div>
4288            <address>Unit 16, 37 Killarney Ave, Robina QLD 4226</address>
4289          </article>
4290        </div>
4291      </section>
4292    </div>
4293
4294    <div class="ps-premium-footer__legal">
4295      <p>© Copyright 2026. Platinum Signs. All rights reserved.</p>
4296      <nav class="ps-premium-footer__legal-links" aria-label="Legal">
4297        <a href="/privacy-policy">Privacy policy</a>
4298        <a href="/contact-us">Contact</a>
4299      </nav>
4300    </div>
4301  </div>
4302  
4302<script>
4303    (() => {
4304      const query = window.matchMedia('(max-width: 768px)');
4305      const groups = document.querySelectorAll('.ps-premium-footer__nav-group');
4306      const syncFooterNavigation = () => {
4307        groups.forEach((group) => {
4308          if (query.matches) group.removeAttribute('open');
4309          else group.setAttribute('open', '');
4310        });
4311      };
4312      syncFooterNavigation();
4313      if (query.addEventListener) query.addEventListener('change', syncFooterNavigation);
4314      else query.addListener(syncFooterNavigation);
4315    })();
4316  </script>
4316
4317</footer>
4318<!-- PS PREMIUM SHARED FOOTER END -->
4319    <!-- footer end -->
4320
4321    <!-- back-to-top start -->
4322    <a id="totop" href="#top" aria-label="Back to top">
4323        <i class="fa fa-angle-up"></i>
4324    </a>
4325    <!-- back-to-top end -->
4326
4327</div><!-- page end -->
4328      <div class="modal fade" id="modalPhone" tabindex="-1" role="dialog"  aria-hidden="true">
4329        <div class="modal-dialog modal-sm" role="document">
4330          <div class="modal-content">
4331            <form method="POST" action="/contact-send">
4332              <input type="hidden" name="_token" value="i4BznJ4qAsvLfIJ61wHDyfx6PiYzKESoH9JNvkDJ" />
4333              <input type="hidden" name="type" value="2" />
4334              <div class="modal-header" >
4335                <img src="images/logo.png" alt="Platinum Signs" decoding="async" loading="lazy">
4336              </div>
4337              <div class="modal-body">
4338                <div style="">Click to Call </div>
4339                <hr >
4340                <div class="form-group">
4341                  <input type="text" class="form-control" placeholder="Name" name="name" style="margin-bottom: 0" aria-label="Name">
4342                </div>
4343                <div class="form-group">
4344                  <input type="text" class="form-control" placeholder="E-mail" name="email" style="margin-bottom: 0" aria-label="E-mail">
4345                </div>
4346                <div class="form-group">
4347                  <input type="text" class="form-control phone" placeholder="Phone" name="phone" style="margin-bottom: 0" aria-label="Phone">
4348                </div>
4349              </div>
4350              <div class="modal-footer">
4351                <button type="submit" class="btn btn-primary" >SEND</button>
4352              </div>
4353            </form>
4354          </div>
4355        </div>
4356      </div>
4357
4358
4359      <div class="modal fade" id="modalPhone2" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
4360        <div class="modal-dialog modal-sm" role="document">
4361          <div class="modal-content modalPhone2">
4362            <div class="modal-body">
4363              <div class="t1" style=""><i class="fa fa-2x fa-phone"></i></div>
4364              <div class="t2" style="">Click to Call</div>
4365              <div class="t2" style="">1300 448 608</div>
4366              <div class="t3">
4367                <a href="tel:1300448608" class="btn_phone">CALL </a>
4368              </div>
4369            </div>
4370          </div>
4371        </div>
4372      </div>
4373
4374      
4375      <div class="d-mobile">
4376          <div class="d-phone" style="width: 100%">
4377              <a href="tel:1300448608" onclick="convertPhone()"><i class="fa fa-phone" aria-hidden="true"></i> Click to Call</a>
4378          </div>
4379      </div>
4380
4381      <!-- Javascript -->
4382      
4382<script src="js/jquery-3.6.3.min.js"></script>
4382
4383      
4383<script type="text/javascript">
4384        jQuery.event.special.touchstart = {
4385            setup: function( _, ns, handle ) {
4386                this.addEventListener("touchstart", handle, { passive: !ns.includes("noPreventDefault") });
4387            }
4388        };
4389        jQuery.event.special.touchmove = {
4390            setup: function( _, ns, handle ) {
4391                this.addEventListener("touchmove", handle, { passive: !ns.includes("noPreventDefault") });
4392            }
4393        };
4394        jQuery.event.special.wheel = {
4395            setup: function( _, ns, handle ){
4396                this.addEventListener("wheel", handle, { passive: true });
4397            }
4398        };
4399        jQuery.event.special.mousewheel = {
4400            setup: function( _, ns, handle ){
4401                this.addEventListener("mousewheel", handle, { passive: true });
4402            }
4403        };
4404
4405      </script>
4405
4406      
4407      
4407<script src="js/bootstrap.bundle.min.js"></script>
4407
4408      
4408<script defer src="js/slick.min.js"></script>
4408
4409      
4409<script defer src="js/main.min.js?v=1.03"></script>
4409
4410
4411      
4411<script async type="text/javascript">
4412        function addFile() {
4413          html = '<div class="form-group"><input type="file" class="form-control"  name="file[]" aria-label="Upload project files"></div>';
4414          $('#addFile').append(html);
4415        }
4416      </script>
4416
4417
4418      
4418<script src="js/libs.min.js?v=1.13" type="text/javascript"></script>
4418
4419      
4420      
4421
4422            
4423      
4423<script type="text/javascript">
4424          function convertPhone() {
4425            /*"C_1sJrhQnQXO0": {
4426              "on": "visible",
4427              "vars": {
4428                "event_name": "conversion",
4429              }
4430            }*/
4431            if (window.psAnalyticsTrafficType !== 'internal_test') { gtag('event', 'conversion', {'send_to': 'AW-866153381/hCI6CJD7_K8YEKXngZ0D'}); }
4432            gtag('event', 'telefone');
4433            if (typeof clarity === 'function') { clarity('event', 'phone_click'); clarity('upgrade', 'phone_click'); }
4434          }
4435          function convertWhats() {
4436            /*"C_PyWhwb7SG7g": {
4437              "on": "visible",
4438              "vars": {
4439                "event_name": "conversion",
4440              }
4441            }*/
4442            gtag('event', 'whatsapp');
4443            if (typeof clarity === 'function') { clarity('event', 'whatsapp_click'); }
4444
4445          }
4446      </script>
4446
4447        
4447<script id="ps-homepage-quote-flow-js">
4448        (function () {
4449          var form = document.querySelector('[data-ps-quote-flow]');
4450          if (!form) return;
4451          var steps = form.querySelectorAll('[data-ps-quote-step]');
4452          var message = form.querySelector('#ps-quote-message');
4453          var error = form.querySelector('#ps-quote-message-error');
4454          var summary = form.querySelector('[data-ps-quote-summary]');
4455          var file = form.querySelector('#file');
4456          var uploadHint = form.querySelector('#ps-upload-hint');
4457          var uploadStatus = form.querySelector('#ps-upload-status');
4458          var uploadPreviews = form.querySelector('#ps-upload-previews');
4459          var selectedFiles = [];
4460          var fileStates = [];
4461          var previewUrls = [];
4462          var previewQueue = [];
4463          var previewActive = 0;
4464          var previewGeneration = 0;
4465          var uploadBusy = false;
4466          var localityInput = form.querySelector('#ps-quote-postcode');
4467          var localityOptions = form.querySelector('#ps-quote-locality-options');
4468          var localityStatus = form.querySelector('#ps-quote-locality-status');
4469          var localityResults = [];
4470          var localityActive = -1;
4471          var localityTimer = 0;
4472          var localityRequest = 0;
4473          var finalActions = form.querySelector('[data-ps-quote-final-actions]');
4474
4475          function formatBytes(bytes) {
4476            if (bytes < 1024 * 1024) return Math.max(1, Math.round(bytes / 1024)) + ' KB';
4477            return (bytes / 1024 / 1024).toFixed(bytes < 10 * 1024 * 1024 ? 1 : 0) + ' MB';
4478          }
4479          function safeFileKey(item) {
4480            return String(item && item.name || 'attachment').replace(/[^\w.\-]+/g, '_').slice(-150).toLowerCase();
4481          }
4482          function fileExtension(item) {
4483            var name = String(item && item.name || '');
4484            return name.indexOf('.') > -1 ? name.split('.').pop().toLowerCase() : '';
4485          }
4486          function isPreviewImage(item) {
4487            return /^image\/(jpeg|png)$/i.test(item.type || '') || /^(jpe?g|png)$/i.test(fileExtension(item));
4488          }
4489          function initialFileState() {
4490            return 'Added';
4491          }
4492          function syncNativeFiles(nextFiles) {
4493            try {
4494              var transfer = new DataTransfer();
4495              nextFiles.forEach(function (item) { transfer.items.add(item); });
4496              file.files = transfer.files;
4497              return file.files.length === nextFiles.length;
4498            } catch (syncError) {
4499              return false;
4500            }
4501          }
4502          function revokePreviewUrls() {
4503            previewUrls.forEach(function (url) { try { URL.revokeObjectURL(url); } catch (error) {} });
4504            previewUrls = [];
4505          }
4506          function renderFileType(media, item) {
4507            media.innerHTML = '';
4508            var type = document.createElement('span');
4509            type.className = 'ps-upload-preview__type';
4510            type.textContent = fileExtension(item).toUpperCase() || 'FILE';
4511            media.appendChild(type);
4512          }
4513          function schedulePreviewQueue() {
4514            var run = function () {
4515              while (previewActive < 2 && previewQueue.length) {
4516                var job = previewQueue.shift();
4517                if (job.generation !== previewGeneration || !document.documentElement.contains(job.card)) continue;
4518                previewActive++;
4519                (function (previewJob) {
4520                  var image = document.createElement('img');
4521                  var url = URL.createObjectURL(previewJob.item);
4522                  var settled = false;
4523                  var timeout = window.setTimeout(function () { finish(false); }, 4000);
4524                  previewUrls.push(url);
4525                  image.alt = '';
4526                  image.decoding = 'async';
4527                  function finish(ready) {
4528                    if (settled) return;
4529                    settled = true;
4530                    window.clearTimeout(timeout);
4531                    previewActive--;
4532                    if (ready && previewJob.generation === previewGeneration && document.documentElement.contains(previewJob.card)) {
4533                      previewJob.media.innerHTML = '';
4534                      previewJob.media.appendChild(image);
4535                      previewJob.card.classList.add('has-thumbnail');
4536                    }
4537                    try { URL.revokeObjectURL(url); } catch (error) {}
4538                    previewUrls = previewUrls.filter(function (item) { return item !== url; });
4539                    schedulePreviewQueue();
4540                  }
4541                  image.addEventListener('load', function () {
4542                    if (typeof image.decode === 'function') image.decode().catch(function () {}).then(function () { finish(true); });
4543                    else finish(true);
4544                  });
4545                  image.addEventListener('error', function () { finish(false); });
4546                  image.src = url;
4547                  if (image.complete) window.requestAnimationFrame(function () { finish(!!image.naturalWi
4547dth); });
4548                })(job);
4549              }
4550            };
4551            if ('requestIdleCallback' in window) window.requestIdleCallback(run, { timeout: 250 });
4552            else window.setTimeout(run, 0);
4553          }
4554          function selectionSummary(extra) {
4555            var total = selectedFiles.reduce(function (sum, item) { return sum + (item.size || 0); }, 0);
4556            var base = selectedFiles.length
4557              ? selectedFiles.length + ' of 10 files · ' + formatBytes(total)
4558              : '';
4559            uploadStatus.textContent = [extra, base].filter(Boolean).join(' ');
4560          }
4561          function renderFiles(extra) {
4562            if (!uploadPreviews || !uploadStatus) return;
4563            previewGeneration++;
4564            previewQueue = [];
4565            revokePreviewUrls();
4566            uploadPreviews.innerHTML = '';
4567            uploadPreviews.hidden = selectedFiles.length === 0;
4568            selectedFiles.forEach(function (item, index) {
4569              var card = document.createElement('article');
4570              card.className = 'ps-upload-preview';
4571              var media = document.createElement('div');
4572              media.className = 'ps-upload-preview__media';
4573              var state = document.createElement('span');
4574              state.className = 'ps-upload-preview__state';
4575              state.textContent = fileStates[index] || 'Added';
4576              renderFileType(media, item);
4577              card.classList.add('is-ready');
4578              if (isPreviewImage(item) && window.URL && URL.createObjectURL) {
4579                previewQueue.push({ generation: previewGeneration, card: card, media: media, item: item });
4580              }
4581              var body = document.createElement('div');
4582              body.className = 'ps-upload-preview__body';
4583              var name = document.createElement('strong');
4584              name.textContent = item.name;
4585              var size = document.createElement('span');
4586              size.textContent = formatBytes(item.size || 0);
4587              body.appendChild(name);
4588              body.appendChild(size);
4589              body.appendChild(state);
4590              var remove = document.createElement('button');
4591              remove.type = 'button';
4592              remove.className = 'ps-upload-preview__remove';
4593              remove.setAttribute('aria-label', 'Remove ' + item.name);
4594              remove.textContent = '×';
4595              remove.disabled = uploadBusy;
4596              remove.addEventListener('click', function () {
4597                var next = selectedFiles.filter(function (_, itemIndex) { return itemIndex !== index; });
4598                if (!syncNativeFiles(next)) {
4599                  selectionSummary('This browser could not remove that file safely. Use Change files to replace the selection.');
4600                  return;
4601                }
4602                selectedFiles = next;
4603                fileStates = next.map(initialFileState);
4604                renderFiles('File removed.');
4605              });
4606              card.appendChild(media);
4607              card.appendChild(body);
4608              card.appendChild(remove);
4609              uploadPreviews.appendChild(card);
4610            });
4611            selectionSummary(extra || '');
4612            schedulePreviewQueue();
4613          }
4614          function paintFileStates(extra) {
4615            if (!uploadPreviews || !uploadStatus) return;
4616            var states = uploadPreviews.querySelectorAll('.ps-upload-preview__state');
4617            var removes = uploadPreviews.querySelectorAll('.ps-upload-preview__remove');
4618            for (var i = 0; i < states.length; i++) states[i].textContent = fileStates[i] || 'Added';
4619            for (var j = 0; j < removes.length; j++) removes[j].disabled = uploadBusy;
4620            selectionSummary(extra || '');
4621          }
4622          function lockUploadSelection(locked) {
4623            var controls = form.querySelectorAll('[data-ps-quote-back], [data-ps-quote-edit]');
4624            if (file) file.disabled = !!locked;
4625            for (var i = 0; i < controls.length; i++) controls[i].disabled = !!locked;
4626            if (locked) form.setAttribute('aria-busy', 'true');
4627            else form.removeAttribute('aria-busy');
4628          }
4629          function acceptFiles(incoming) {
4630            if (uploadBusy) {
4631              syncNativeFiles(selectedFiles);
4632              selectionSummary('Files are already being sent.');
4633              return;
4634            }
4635            var next = selectedFiles.slice();
4636            var keys = {};
4637            next.forEach(function (item) { keys[safeFileKey(item)] = true; });
4638            var rejected = [];
4639            incoming.forEach(function (item) {
4640              var ext = fileExtension(item);
4641              var key = safeFileKey(item);
4642              if (!/^(pdf|jpe?g|png|ai|eps)$/i.test(ext)) rejected.push(item.name + ' is not a supported file type.');
4643              else if (!item.size || item.size > 50 * 1024 * 1024) rejected.push(item.name + ' is empty or over 50 MB.');
4644              else if (keys[key]) rejected.push(item.name + ' is already selected.');
4645              else if (next.length >= 10) rejected.push(item.name + ' was not added because the limit is 10 files.');
4646              else { next.push(item); keys[key] = true; }
4647            });
4648            if (!syncNativeFiles(next)) {
4649              selectedFiles = Array.prototype.slice.call(file.files || [], 0, 10);
4650              fileStates = selectedFiles.map(initialFileState);
4651              renderFiles('Your browser kept its original file selection.');
4652              return;
4653            }
4654            selectedFiles = next;
4655            fileStates = next.map(initialFileState);
4656            renderFiles(rejected.length ? rejected[0] + (rejected.length > 1 ? ' +' + (rejected.length - 1) + ' more.' : '') : '');
4657          }
4658          function setUploadPhase(detail) {
4659            detail = detail || {};
4660            if (!selectedFiles.length) return;
4661            if (detail.phase === 'start') {
4662              uploadBusy = true;
4663              lockUploadSelection(detail.mode === 'direct');
4664              fileStates = selectedFiles.map(function () { return detail.mode === 'direct' ? 'Queued' : 'Sending…'; });
4665            } else if (detail.phase === 'file-start' && typeof detail.index === 'number') {
4666              fileStates[detail.index] = 'Uploading…';
4667            } else if (detail.phase === 'file-done' && typeof detail.index === 'number') {
4668              fileStates[detail.index] = 'Uploaded';
4669            } else if (detail.phase === 'fallback') {
4670              uploadBusy = false;
4671              lockUploadSelection(false);
4672              fileStates = selectedFiles.map(function () { return 'Sending with enquiry'; });
4673            } else if (detail.phase === 'error') {
4674              uploadBusy = false;
4675              lockUploadSelection(false);
4676              fileStates = selectedFiles.map(function () { return 'Added'; });
4677            }
4678            paintFileStates(detail.message || '');
4679          }
4680
4681          function localityLabel(item) {
4682            var suburb = String(item.suburb || '').toLowerCase().replace(/(^|[\s'-])([a-z])/g, function (_, gap, letter) { return gap + letter.toUpperCase(); });
4683            return [suburb, String(item.state || '').toUpperCase(), item.postcode || ''].filter(Boolean).join(' ');
4684          }
4685          function closeLocalities() {
4686            localityOptions.hidden = true;
4687            localityOptions.innerHTML = '';
4688            localityResults = [];
4689            localityActive = -1;
4690            localityInput.setAttribute('aria-expanded', 'false');
4691            localityInput.removeAttribute('aria-activedescendant');
4692          }
4693          function invalidateLocalities() {
4694            localityRequest++;
4695            window.clearTimeout(localityTimer);
4696            closeLocalities();
4697          }
4698          function chooseLocality(index) {
4699            var item = localityResults[index];
4700            if (!item) return;
4701            localityInput.value = localityLabel(item);
4702            localityStatus.textContent = 'Selected ' + localityInput.value;
4703            closeLocalities();
4704          }
4705          function activateLocality(index) {
4706            if (!localityResults.length) return;
4707            localityActive = (index + localityResults.length) % localityResults.length;
4708            var options = localityOptions.querySelectorAll('[role="option"]');
4709            for (var i = 0; i < options.length; i++) options[i].setAttribute('aria-selected', String(i === localityActive));
4710            if (options[localityActive]) {
4711              localityInput.setAttribute('aria-activedescendant', options[localityActive].id);
4712              options[localityActive].scrollIntoView({ block: 'nearest' });
4713            }
4714          }
4715          function renderLocalities(results) {
4716            localityResults = results.slice(0, 8);
4717            localityOptions.innerHTML = '';
4718            localityActive = -1;
4719            if (!localityResults.length) {
4720              closeLocalities();
4721              localityStatus.textContent = 'No matching Australian suburbs found. You can keep typing your location.';
4722              return;
4723            }
4724            localityResults.forEach(function (item, index) {
4725              var option = document.createElement('div');
4726              option.id = 'ps-quote-locality-option-' + index;
4727              option.className = 'ps-locality-option';
4728              option.setAttribute('role', 'option');
4729              option.setAttribute('aria-selected', 'false');
4730              option.textContent = localityLabel(item);
4731              option.addEventListener('mousedown', function (event) { event.preventDefault(); chooseLocality(index); });
4732              option.addEventListener('click', function () { chooseLocality(index); });
4733              localityOptions.appendChild(option);
4734            });
4735            localityOptions.hidden = false;
4736            localityInput.setAttribute('aria-expanded', 'true');
4737            localityStatus.textContent = localityResults.length + ' location suggestions available.';
4738          }
4739          function requestLocalities(query) {
4740            var request = ++localityRequest;
4741            fetch('/api/address/localities?q=' + encodeURIComponent(query), { headers: { accept: 'application/json' } })
4742              .then(function (response) { if (!response.ok) throw new Error('locality ' + response.status); return response.json(); })
4743              .then(function (payload) {
4744                if (request !== localityRequest || localityInput.value.trim() !== query || document.activeElement !== localityInput) return;
4745                renderLocalities(Array.isArray(payload.results) ? payload.results : []);
4746              })
4747              .catch(function () {
4748                if (request !== localityRequest) return;
4749                closeLocalities();
4750                localityStatus.textContent = 'Suggestions are unavailable. You can still type your suburb or postcode.';
4751              });
4752          }
4753          function initialiseLocalities() {
4754            if (!localityInput || !localityOptions || !localityStatus) return;
4755            localityInput.addEventListener('input', function () {
4756              invalidateLocalities();
4757              var query = localityInput.value.trim();
4758              if (query.length < 2) return;
4759              localityTimer = window.setTimeout(function () { requestLocalities(query); }, 150);
4760            });
4761            localityInput.addEventListener('keydown', function (event) {
4762              if (localityOptions.hidden || !localityResults.length) return;
4763              if (event.key === 'ArrowDown') { event.preventDefault(); activateLocality(localityActive + 1); }
4764              else if (event.key === 'ArrowUp') { event.preventDefault(); activateLocality(localityActive - 1); }
4765              else if (event.key === 'Enter' && localityActive > -1) { event.preventDefault(); chooseLocality(localityActive); }
4766              else if (event.key === 'Escape') { event.preventDefault(); closeLocalities(); }
4767            });
4768            localityInput.addEventListener('blur', function () { window.setTimeout(invalidateLocalities, 120); });
4769          }
4770
4771          function initialiseQuoteVisual() {
4772            var visual = document.querySelector('[data-ps-quote-visual]');
4773            if (!visual) return;
4774            var slides = visual.querySelectorAll('[data-ps-quote-slide]');
4775            var desktop = window.matchMedia && window.matchMedia('(min-width: 1001px)');
4776            var reduced = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)');
4777            if (!desktop || !desktop.matches || (reduced && reduced.matches) || slides.length < 2) return;
4778            var index = 0;
4779            var timer = 0;
4780            var visible = false;
4781            function loadAlternates() {
4782              for (var i = 1; i < slides.length; i++) {
4783                var source = slides[i].getAttribute('data-src');
4784                if (source) { slides[i].src = source; slides[i].removeAttribute('data-src'); }
4785              }
4786            }
4787            function pause() { window.clearInterval(timer); timer = 0; }
4788            function advance() {
4789              for (var step = 1; step <= slides.length; step++) {
4790                var next = (index + step) % slides.length;
4791                if (slides[next].complete && slides[next].naturalWidth) {
4792                  slides[index].classList.remove('is-active');
4793                  slides[next].classList.add('is-active');
4794                  index = next;
4795                  return;
4796                }
4797              }
4798            }
4799            function play() {
4800              if (!visible || document.hidden || timer) return;
4801              loadAlternates();
4802              timer = window.setInterval(advance, 6000);
4803            }
4804            document.addEventListener('visibilitychange', function () { if (document.hidden) pause(); else play(); });
4805            if ('IntersectionObserver' in window) {
4806              var observer = new IntersectionObserver(function (entries) {
4807                visible = !!(entries[0] && entries[0].isIntersecting);
4808                if (visible) play(); else pause();
4809              }, { rootMargin: '250px 0px' });
4810              observer.observe(visual);
4811            } else { visible = true; play(); }
4812          }
4813          function ensureVisibleTurnstile(attempt) {
4814            if (!form.classList.contains('is-step-2')) return;
4815            var holder = form.querySelector('.cf-turnstile');
4816            var response = form.querySelector('[name="cf-turnstile-response"]');
4817            if (response && response.value) return;
4818            if (holder && window.turnstile && typeof window.turnstile.render === 'function') {
4819              if (holder.getAttribute('data-ps-quote-explicit') === '1') return;
4820              holder.setAttribute('data-ps-quote-explicit', '1');
4821              try {
4822                window.turnstile.render(holder, {
4823                  sitekey: holder.getAttribute('data-sitekey'),
4824                  appearance: 'interaction-only',
4825                  size: 'flexible'
4826                });
4827              } catch (error) {
4828                holder.removeAttribute('data-ps-quote-explicit');
4829                try { window.turnstile.reset(holder); } catch (resetError) { /* fail open */ }
4830              }
4831              return;
4832            }
4833            if (attempt < 20) window.setTimeout(function () { ensureVisibleTurnstile(attempt + 1); }, 150);
4834          }
4835          function show(step, focus) {
4836            form.classList.add('is-enhanced');
4837            form.classList.toggle('is-step-1', step === 1);
4838            form.classList.toggle('is-step-2', step === 2);
4839            if (finalActions) {
4840              if (step === 1) {
4841                finalActions.setAttribute('inert', '');
4842                finalActions.setAttribute('aria-hidden', 'true');
4843              } else {
4844                finalActions.removeAttribute('inert');
4845                finalActions.removeAttribute('aria-hidden');
4846              }
4847            }
4848            for (var i = 0; i < steps.length; i++) {
4849              var active = steps[i].getAttribute('data-ps-quote-step') === String(step);
4850              steps[i].hidden = !active;
4851            }
4852            if (focus) {
4853              var heading = form.querySelector(step === 1 ? '#ps-home-quote-title' : '#ps-quote-contact-title');
4854              if (heading) heading.focus();
4855              window.requestAnimationFrame(function () {
4856                var card = form.closest('.ps-premium-quote');
4857                if (!card) return;
4858                var rect = card.getBoundingClientRect();
4859                if (rect.top < 16 || rect.bottom > window.innerHeight - 16) {
4860                  var reducedMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
4861                  card.scrollIntoView({ block: 'center', behavior: reducedMotion ? 'auto' : 'smooth' });
4862                }
4863              });
4864            }
4865            if (step === 2) window.setTimeout(function () { ensureVisibleTurnstile(0); }, 800);
4866          }
4867          function updateSummary() {
4868            var value = (message.value || '').trim();
4869            summary.textContent = value || 'Your project description';
4870          }
4871          form.querySelector('[data-ps-quote-continue]').addEventListener('click', function () {
4872            if (!message.checkValidity() || !message.value.trim()) {
4873              error.hidden = false;
4874              message.setAttribute('aria-invalid', 'true');
4875              message.focus();
4876              return;
4877            }
4878            error.hidden = true;
4879            message.removeAttribute('aria-invalid');
4880            updateSummary();
4881            show(2, true);
4882          });
4883          form.querySelector('[data-ps-quote-back]').addEventListener('click', function () { if (!uploadBusy) show(1, true); });
4884          form.querySelector('[data-ps-quote-edit]').addEventListener('click', function () { if (!uploadBusy) show(1, true); });
4885          form.querySelectorAll('[data-ps-brief-starter]').forEach(function (button) {
4886            button.addEventListener('click', function () {
4887              message.value = button.getAttribute('data-ps-brief-starter') || '';
4888              message.dispatchEvent(new Event('input', { bubbles: true }));
4889              message.focus();
4890            });
4891          });
4892          message.addEventListener('input', function () {
4893            updateSummary();
4894            if (message.value.trim()) {
4895              error.hidden = true;
4896              message.removeAttribute('aria-invalid');
4897            }
4898          });
4899          if (file && uploadHint) {
4900            file.addEventListener('change', function () {
4901              if (uploadBusy) {
4902                syncNativeFiles(selectedFiles);
4903                selectionSummary('Files are already being sent.');
4904                return;
4905              }
4906              acceptFiles(Array.prototype.slice.call(file.files || []));
4907            });
4908            form.addEventListener('ps:upload', function (event) { setUploadPhase(event.detail); });
4909          }
4910          initialiseLocalities();
4911          initialiseQuoteVisual();
4912          form.hidden = false;
4913          show(1, false);
4914        })();
4915      </script>
4915
4916
4917      
4917<script src="/js/ps-attribution.js" defer></script>
4917
4918          
4919      
4919<script defer src="js/ps-mobile-ui.js?v=c1509669dda9"></script>
4919
4920</body>
4921</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.