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 & 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 & 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 & 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 & 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 & 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 &
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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & Facade Signs" decoding="async" loading="lazy"> 3441 </span> 3442 <span class="ps-v5-range-card__body"> 3443 <strong>Shopfront & 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 & Reception Signs" decoding="async" loading="lazy"> 3461 </span> 3462 <span class="ps-v5-range-card__body"> 3463 <strong>Office & 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 & Logos" decoding="async" loading="lazy"> 3471 </span> 3472 <span class="ps-v5-range-card__body"> 3473 <strong>3D Letters & 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 & Decals" decoding="async" loading="lazy"> 3501 </span> 3502 <span class="ps-v5-range-card__body"> 3503 <strong>Window Graphics & 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 & Building Signs" decoding="async" loading="lazy"> 3521 </span> 3522 <span class="ps-v5-range-card__body"> 3523 <strong>Wayfinding & 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 & 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 & 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 & 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 & Victoria signage <span aria-hidden="true">â</span></a></div> 3932 </details> 3933 <details class="ps-home-location-detail"> 3934 <summary><span>Brisbane & 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 & Queensland signage <span aria-hidden="true">â</span></a></div> 3936 </details> 3937 <details class="ps-home-location-detail"> 3938 <summary><span>Canberra & 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 & ACT signage <span aria-hidden="true">â</span></a></div> 3940 </details> 3941 <details class="ps-home-location-detail"> 3942 <summary><span>Adelaide & 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 & 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 & 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 & 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>“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.”</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>“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.”</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>“I've worked with Platinum Signs on two projects now and both have definitely exceeded my expectations. Yago and the team have consistently delivered.”</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 â</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 & 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 & 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.