:root{--red:#d82f2c;--ink:#0a0a0a;--panel:#171717;--line:#393939;--paper:#efefec;--muted:#aaa}.site-page{margin:0;background:var(--ink);color:#f7f7f4;font-family:Manrope,Arial,sans-serif}.site-page *{box-sizing:border-box}.site-page a{color:inherit;text-decoration:none}.site-nav{height:80px;padding:0 clamp(20px,6vw,105px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:#0a0a0af2;border-bottom:1px solid #292929;position:sticky;top:0;z-index:20;backdrop-filter:blur(16px)}.site-logo{display:inline-block;width:148px}.site-logo img{width:100%;display:block}.site-nav nav{display:flex;gap:27px;color:#b4b4b4;font:500 10px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.1em}.site-nav nav a:hover,.site-nav nav .active{color:#fff}.site-nav nav .active{border-bottom:1px solid var(--red);padding-bottom:5px}.site-cta{justify-self:end;background:var(--red);padding:12px 15px;font:800 10px Manrope,sans-serif}.site-cta span{margin-left:8px}.kicker{margin:0 0 18px;color:var(--red);font:500 10px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.11em}.site-page h1,.site-page h2,.site-page h3{margin:0;letter-spacing:-.075em;line-height:.93}.site-page h1{font-size:clamp(52px,7vw,105px);font-weight:800}.site-page h2{font-size:clamp(38px,5vw,73px);font-weight:800}.site-page h1 em,.site-page h2 em{font-style:normal;color:var(--red)}.solid-button{display:inline-flex;align-items:center;gap:18px;background:var(--red);border:0;padding:15px 19px;color:#fff;font:800 11px Manrope,sans-serif}.solid-button:hover{background:#ec4642}.line-link{font:700 11px 'DM Mono',monospace;border-bottom:1px solid currentColor;padding-bottom:5px;text-transform:uppercase}.line-link span{color:var(--red);margin-left:7px}.home-hero{min-height:620px;padding:clamp(70px,9vw,125px) clamp(20px,7vw,120px);display:grid;grid-template-columns:1fr minmax(360px,.9fr);align-items:center;gap:50px;background:radial-gradient(circle at 82% 44%,#303030,transparent 28%),linear-gradient(135deg,#121212,#080808 70%);overflow:hidden}.hero-content>p:not(.kicker){max-width:535px;color:#c0c0c0;font-size:16px;line-height:1.8;margin:28px 0}.hero-buttons{display:flex;align-items:center;gap:22px}.hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:44px}.hero-meta span{border:1px solid #505050;padding:8px 10px;color:#bcbcbc;font:500 9px 'DM Mono',monospace;text-transform:uppercase}.hero-image{height:410px;display:flex;align-items:center;justify-content:center;position:relative}.hero-image:before{content:'';width:min(34vw,410px);aspect-ratio:1;border-radius:50%;border:1px solid #ffffff28;box-shadow:0 0 0 24px #ffffff06;position:absolute}.hero-image img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 22px 22px #000b);position:relative}.home-intro{padding:clamp(70px,9vw,125px) clamp(20px,17vw,260px);background:var(--paper);color:#151515}.home-intro h2{max-width:790px}.home-intro>p:not(.kicker){max-width:650px;color:#595959;line-height:1.8;margin:27px 0}.home-services,.featured-section{padding:clamp(75px,10vw,140px) clamp(20px,7vw,120px)}.home-services{background:#161616}.section-top{display:flex;justify-content:space-between;align-items:end;gap:40px}.service-preview{margin-top:57px;border-top:1px solid #414141}.service-preview a{min-height:155px;display:grid;grid-template-columns:75px 1fr 35px;align-items:center;gap:16px;border-bottom:1px solid #414141;transition:background .2s,padding .2s}.service-preview a:hover{padding:0 19px;background:#202020}.service-preview small{color:var(--red);font:500 10px 'DM Mono',monospace}.service-preview h3{font-size:clamp(22px,3vw,39px)}.service-preview p{margin:10px 0 0;color:#a8a8a8;font-size:13px}.service-preview span{justify-self:end;font:500 22px 'DM Mono',monospace}.home-haltech{padding:clamp(75px,9vw,130px) clamp(20px,7vw,120px);display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;background:var(--red)}.home-haltech .kicker{color:#ffe4e2}.home-haltech h2 em{color:#151515}.home-haltech>div>p:not(.kicker){max-width:520px;line-height:1.75;margin:25px 0;color:#fff}.dark-button{background:#111}.haltech-stat{justify-self:end;min-width:290px;padding:36px;border:1px solid #ffffff59}.haltech-stat b{display:block;font-size:clamp(70px,9vw,135px);letter-spacing:-.1em;line-height:.8}.haltech-stat span{display:block;margin-top:25px;font:500 11px 'DM Mono',monospace;text-transform:uppercase}.home-contact{padding:clamp(75px,10vw,135px) clamp(20px,17vw,260px);background:#0d0d0d}.home-contact>p:not(.kicker){max-width:560px;color:#aaa;line-height:1.75;margin:24px 0 30px}.site-footer{padding:40px clamp(20px,7vw,120px);display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:25px;border-top:1px solid #343434;background:#080808}.site-footer p{margin:0;color:#858585;font-size:11px;line-height:1.7}.site-footer>div{display:flex;gap:18px}.site-footer>div a{font:500 10px 'DM Mono',monospace;color:#bcbcbc;text-transform:uppercase}.page-hero{padding:clamp(80px,11vw,155px) clamp(20px,14vw,220px);background:radial-gradient(circle at 90% 20%,#292929,transparent 29%),#101010}.page-hero>p:not(.kicker){max-width:620px;margin:28px 0 0;color:#aaa;line-height:1.8;font-size:16px}.service-detail{padding:clamp(65px,9vw,125px) clamp(20px,14vw,220px);display:grid;grid-template-columns:90px minmax(0,680px);gap:30px;border-top:1px solid #3a3a3a}.service-detail.reverse{background:#171717}.service-detail>span{font:500 12px 'DM Mono',monospace;color:var(--red)}.service-detail h2{font-size:clamp(37px,5vw,67px)}.service-detail div>p:not(.kicker){color:#aaa;line-height:1.8;max-width:570px}.service-detail ul{margin:30px 0;padding:0;list-style:none;max-width:620px}.service-detail li{padding:12px 0;border-top:1px solid #3b3b3b;color:#dadada;font-size:14px}.service-detail li:before{content:'+';color:var(--red);margin-right:10px}.about-layout{padding:clamp(75px,10vw,145px) clamp(20px,9vw,150px);display:grid;grid-template-columns:.8fr 1fr;align-items:center;gap:clamp(40px,9vw,140px)}.about-image{height:530px;overflow:hidden;border-bottom:3px solid var(--red);background:#171717}.about-image img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.16)}.about-layout>div:last-child>p:not(.kicker){color:#aaa;line-height:1.8;max-width:550px}.principles{padding:0 clamp(20px,9vw,150px) clamp(75px,10vw,145px);display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#3a3a3a}.principles>div{padding:31px;background:#151515}.principles small{color:var(--red);font:500 10px 'DM Mono',monospace}.principles h3{font-size:25px;margin:36px 0 12px}.principles p{margin:0;color:#aaa;line-height:1.7;font-size:13px}.contact-page{padding:clamp(80px,10vw,145px) clamp(20px,10vw,170px);display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(45px,9vw,140px);background:#ededeb;color:#151515}.contact-page h1 em{color:var(--red)}.contact-page>div>p:not(.kicker){max-width:500px;color:#555;line-height:1.8;margin:26px 0}.contact-list{max-width:480px;margin-top:35px}.contact-list a{display:block;padding:14px 0;border-top:1px solid #aaa;font-weight:800;font-size:14px}.contact-list small{display:block;margin-bottom:6px;color:#777;font:500 10px 'DM Mono',monospace;text-transform:uppercase}.enquiry-card{padding:clamp(24px,4vw,45px);background:#111;color:#fff}.enquiry-card label{display:block;margin:0 0 20px;color:#bcbcbc;font:500 10px 'DM Mono',monospace;letter-spacing:.07em;text-transform:uppercase}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:17px}.enquiry-card input,.enquiry-card select,.enquiry-card textarea{width:100%;display:block;margin-top:9px;padding:9px 0;border:0;border-bottom:1px solid #555;background:transparent;color:#fff;font:500 14px Manrope,sans-serif;outline:0}.enquiry-card select option{color:#111}.enquiry-card textarea{resize:vertical}.enquiry-card .honeypot{display:none}.enquiry-card>p{margin:18px 0 0;color:#8d8d8d;font-size:11px}@media(max-width:850px){.site-nav{grid-template-columns:1fr auto}.site-nav nav{display:none}.home-hero,.home-haltech,.about-layout,.contact-page{grid-template-columns:1fr}.hero-image{order:-1;height:320px}.home-haltech{gap:35px}.haltech-stat{justify-self:start}.about-image{max-width:620px}.site-footer{grid-template-columns:1fr 1fr}.site-footer>div{grid-column:1/-1}.principles{grid-template-columns:1fr}.contact-page{gap:40px}}@media(max-width:560px){.site-nav{height:70px;padding:0 18px}.site-logo{width:125px}.site-cta{padding:10px;font-size:10px}.home-hero,.home-services,.featured-section,.home-haltech,.home-contact,.page-hero,.service-detail,.about-layout,.contact-page{padding-left:20px;padding-right:20px}.hero-buttons{flex-direction:column;align-items:flex-start}.hero-image{height:270px}.home-intro{padding-left:20px;padding-right:20px}.section-top{display:block}.section-top .line-link{display:inline-block;margin-top:25px}.service-preview a{grid-template-columns:34px 1fr 24px;min-height:175px}.service-preview a:hover{padding:0}.service-preview h3{font-size:25px}.service-preview p{font-size:12px;line-height:1.55}.haltech-stat{min-width:0;width:100%}.service-detail{grid-template-columns:1fr;gap:20px}.service-detail>span{margin-bottom:-10px}.about-image{height:380px}.form-row{grid-template-columns:1fr}.site-footer{padding:34px 20px;grid-template-columns:1fr;gap:18px}.site-footer>div{grid-column:auto;flex-wrap:wrap}}
/* Touch-friendly mobile browser overrides. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:84px}body{overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.site-page{font-synthesis:none}.site-page img{max-width:100%;height:auto}.site-page a,.site-page button,.site-page input,.site-page select,.site-page textarea{touch-action:manipulation}.solid-button,.site-cta,.line-link{min-height:44px}.enquiry-card input,.enquiry-card select,.enquiry-card textarea{font-size:16px}@media(max-width:850px){.site-nav{height:auto;min-height:70px;padding-top:env(safe-area-inset-top);grid-template-columns:auto minmax(0,1fr) auto;gap:12px}.site-nav nav{display:flex;order:2;gap:18px;overflow-x:auto;scrollbar-width:none;white-space:nowrap;padding:8px 0}.site-nav nav::-webkit-scrollbar{display:none}.site-nav .site-logo{width:115px;flex:none}.site-nav .site-cta{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 10px;font-size:9px;white-space:nowrap}.site-nav nav a{font-size:9px;flex:none}.site-nav nav .active{padding-bottom:3px}.home-hero{min-height:auto}.hero-content>p:not(.kicker),.page-hero>p:not(.kicker),.contact-page>div>p:not(.kicker){font-size:15px;line-height:1.65}.hero-meta{gap:7px}.hero-meta span{font-size:8px}.site-footer{padding-bottom:max(34px,env(safe-area-inset-bottom))}}@media(max-width:560px){.site-nav{padding-left:14px;padding-right:14px;gap:9px}.site-nav .site-logo{width:95px}.site-nav nav{gap:15px}.site-nav nav a{font-size:8px}.site-nav .site-cta{font-size:0;width:40px;padding:0}.site-nav .site-cta span{font-size:16px;margin:0}.site-page h1{font-size:46px}.site-page h2{font-size:36px}.hero-meta span{width:100%;text-align:center}.solid-button{width:100%}}
@media(max-width:850px){.site-nav{grid-template-columns:minmax(0,1fr) auto!important}.site-nav nav{grid-column:1/-1;grid-row:2;order:initial!important;width:100%}.site-nav .site-cta{grid-column:2;grid-row:1}.site-nav .site-logo{grid-column:1;grid-row:1}}
/* Keep the service preview copy in a deliberate two-row grid.  The former
   auto-placement put the description into a separate grid column on phones. */
.service-preview a{grid-template-columns:75px minmax(0,1fr) 35px;grid-template-areas:"number title arrow" "number copy arrow"}.service-preview small{grid-area:number}.service-preview h3{grid-area:title}.service-preview p{grid-area:copy}.service-preview span{grid-area:arrow}
@media(max-width:560px){.service-preview a{grid-template-columns:34px minmax(0,1fr) 24px;grid-template-areas:"number title arrow" "number copy arrow";column-gap:12px;row-gap:8px;padding:26px 0;min-height:0}.service-preview p{margin:0;max-width:100%;overflow-wrap:anywhere}.service-preview h3{min-width:0}.service-preview span{align-self:center}.home-hero{padding-top:48px}.hero-image{margin:0 -4px}.site-nav nav{padding-bottom:12px}}
/* Android text autosizing can vary between documents after navigation. */
html,body.site-page{width:100%;max-width:100%;-webkit-text-size-adjust:100%!important;text-size-adjust:100%!important}body.site-page{overflow-x:clip}.site-nav nav a,.site-cta{font-size:10px!important}@media(max-width:560px){.site-nav nav a{font-size:8px!important}.site-cta{font-size:0!important}}
